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

+ Recent posts