728x90
반응형
상단에 나오는 쿼리문은 DB에 해당 쿼리문으로 데이터가 들어간다고 알려준다.
이번문제도 쿼리문을 보면 값이 없는 id 파라미터만 있고, pw는 없다.
query : select id from prob_vampire where id=''
아래에는 php 코드가 나와있으며, 이걸 참고해서 문제를 푸는 것 이다.
해당 php 코드에서 자세하게 봐야 하는 부분은 이 부분인 것 같다.
아래 조건문을 보면 따옴표( ‘ )를 필터링 하고 있다.
strtolower() 를 사용하여 모두 소문자로 변경 시키고, str_replace()를 사용하여 입력한 id값의 admin이라는 글자를 공백으로 바꾼다.
문제를 풀기 위해서는 id의 값이 admin 이어야만 풀리게 되어있다.
if(preg_match('/\\'/i', $_GET[id])) exit("No Hack ~_~");
$_GET[id] = strtolower($_GET[id]);
$_GET[id] = str_replace("admin","",$_GET[id]);
if($result['id'] == 'admin') solve("vampire");
admin을 인식하게 되면 바로 공백으로 문자열을 없애버리기 때문에 글자를 admin이라는 문자열을 adadminmin으로 쪼개서 넣었다.
?id=adadminmin 으로 넣었더니 문제가 풀렸다!
728x90
반응형