Tyojong
[LOS] giant 본문
<?php
include "./config.php";
login_chk();
$db = dbconnect();
if(strlen($_GET[shit])>1) exit("No Hack ~_~");
if(preg_match('/ |\n|\r|\t/i', $_GET[shit])) exit("HeHe");
$query = "select 1234 from{$_GET[shit]}prob_giant where 1";
echo "<hr>query : <strong>{$query}</strong><hr><br>";
$result = @mysqli_fetch_array(mysqli_query($db,$query));
if($result[1234]) solve("giant");
highlight_file(__FILE__);
?>
문제 목표
if($result[1234]) solve("giant");
1234를 출력하면 문제가 해결된다.
if(strlen($_GET[shit])>1) exit("No Hack ~_~");
한글자만 허용하며
if(preg_match('/ |\n|\r|\t/i', $_GET[shit])) exit("HeHe");
공백, \n, \r, \t 를 필터링한다.
문제 해결
from과 테이블명 사이에 공백만 주면 1234가 출력되어 해결된다.
필터링되는 개행, 공백 제외 아스키코드표를 보니 사용할 수 있는것을이 있다. %이후 아스키값을 보내면 사용할 수 있다.
Vertical Tab을 사용해 문제를 해결할 수 있다.
?shit=%0B
'web > LOS' 카테고리의 다른 글
[LOS] succubus (0) | 2025.08.13 |
---|---|
[LOS] assassin (0) | 2025.08.12 |
[LOS] bugbear (0) | 2025.08.09 |
[LOS] darkknight (0) | 2025.08.08 |
[LOS] golem (0) | 2025.08.06 |