LOS(The Lord of the SQLI) 9 - VAMPIRE

2021. 1. 16. 20:04정보보안/웹 해킹

9번 문제 VAMPIRE

9번 문제인 VAMPIRE이다.

 

필터식을 확인해보면 if(preg_match('/\'/i), $_GET[id]) 로, 싱글쿼터를 필터링하고있다.

또 코드를 확인하다 보면, 앞서 봤던 문제들과 다른 부분이 있는데

 

$_GET[id] = strtolower($_GET[id]);

$_GET[id] = str_replace("admin", "", $_GET[id]);

 

위 코드 2 Line이다.

 

우선

$_GET[id] = strtolower($_GET[id]) 코드에서 strtolower은 인자값 문자열을 소문자로 바꾼다.

 

$_GET[id] = str_replace("admin", "", $_GET[id]) 코드에서 str_replace는 세번째 인자값을 파라미터로 받아

첫번째 인자를 두번째 인자로 바꾼다.

 

문제를 해결하기 위해서는 if($result['id'] == 'admin')

즉, id 파라미터에 admin이 들어가야 한다.

 

이 문제를 풀기 위해서는 admin을 공백으로 치환시키는 코드를 우회해야하는데,

 

?id = adadminmin 처럼 admin 이라는 문자열 사이에 admin 이라는 문자열을 한번 더 적어

admin을 공백으로 치환 시켰을때, admin 문자열이 남도록 하면 문제를 해결할 수 있다.

 

9번 문제 VAMPIRE Clear !