functionfilter($value){ !is_string($value) AND die("Hacking attempt!"); returnaddslashes($value); }
문제의 index.php 에서는 내부 변수들에 대해 필터링 과정을 거친 후, templates 폴더 내부의 스크립트를 참조하는 방식으로 구성됩니다.
1 2 3 4 5
!isset($_SESSION) AND die("Direct access on this script is not allowed!"); include'db.php';
$sql = 'SELECT `username`,`password` FROM `ptbctf`.`ptbctf` where `username`="'.$_GET['username'].'" and password="'.md5($_GET['password']).'";'; $result = $con->query($sql);
/templates/login.php 페이지 등은 최상단에서 isset($_SESSION) 구문으로 하여금, 페이지의 직접 참조를 방지하고 있습니다. index.php 페이지를 통해 참조될 때에는 session_start 로 인해 $_SESSION 가 설정된다는 점을 이용한 것입니다.