본문 바로가기
워게임/LOS

[los - SQL injection] vampire ( 9단계 )

by B T Y 2017. 9. 23.
반응형

[los - SQL injection] vampire ( 9단계 )







[ 풀이과정 ]



vampire도 if($result['id'] == 'admin') 조건을 만족하면 문제가 풀리게 되는데

troll문제와 다른점은 $_GET[id]=str_replace("admin","",$_GET[id]); 가 있어서 

$_GET[id]안에 admin값이 입력 되있다면 빈문자로 값을 바꿔주게 되있다.


str_replace() 함수를 찾아보니 문자열에 특정 단어가 포함되어있다면 

그 값을 찾아서 원하는 값으로 치환해주는 역할을 하는 함수이다.

str_replace("찾으려는 단어","바꿀 값",찾으려는 값)의 형태를 가진다고 보면된다.


이 문제 또한 troll과 마찬가지로 \ 문자를 이용하면 str_replace() 함수를 사용하더라도 

php에서 검사를 할때는 ad\min이라는 문자로 검색이 되기때문에 패턴 매칭이 되지않고

SQL에서 동작할때는 문자열이 잘려서 입력 되지만 결과는 하나의 문자열로 나오기 때문에 admin이 검색된다.


select id from prob_vampire where id='ad\min'





9단계 클리어~~~~~~


반응형

댓글