반응형
[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단계 클리어~~~~~~
반응형
'워게임 > LOS' 카테고리의 다른 글
[los - SQL injection] golem ( 11단계 ) (0) | 2017.09.23 |
---|---|
[los - SQL injection] skeleton ( 10단계 ) (0) | 2017.09.23 |
[los - SQL injection] troll ( 8단계 ) (0) | 2017.09.23 |
[los - SQL injection] orge ( 7단계 ) (0) | 2017.09.23 |
[los - SQL injection] darkelf ( 6단계 ) (0) | 2017.09.23 |
댓글