728x90
반응형
250점인 51번 문제를 풀어보자.
addslashes() : ', ", \ 앞에 역슬래시(\)를 붙여 특수문자가 아닌 일반문자로 인식하게끔 변환
md5(string, true) : true이면, 해시를 길이 16의 바이너리(2진수) 형식으로 반환, 기본값은 false이다. 이때 반환된 바이너리는 magic_quotes_gpc 옵션에 영향을 받지 않기 때문에 조건을 참으로 만들어주는 바이너리를 얻으면 문제를 풀 수 있다.
md5(string) : 해시를 32자리의 16진수 값으로 반환
이 문제에서 사용될 개념은 세 개의 다른 문자 비교시 참을 반환한다는 것이다,
'a'='b'='c' : 참, 1반환
'a'='b' (거짓,0)
0='c' (거짓,0)
select id from chall51 where id='{$input_id}' and pw='{$input_pw}'
select id from challenge_51_admin where id='admin' and pw='b'='c'
pw='b'는 거짓이다.
select id from challenge_51_admin where id='admin' and 거짓='c'
거짓='c'는 거짓이다.
select id from challenge_51_admin where id='admin' and 거짓=거짓
거짓=거짓은 참이다
728x90
반응형
'CTF & WarGame > webhacking.kr' 카테고리의 다른 글
[webhacking.kr] 53번 문제 (0) | 2020.03.16 |
---|---|
[webhacking.kr] 52번 문제 (0) | 2020.03.16 |
[webhacking.kr] 50번 문제 (0) | 2020.03.15 |
[webhacking.kr] 49번 문제 (0) | 2020.03.15 |
[webhacking.kr] 48번 문제 (0) | 2020.03.15 |