Tyojong
[LOS] vampire 본문
반응형
<?php
include "./config.php";
login_chk();
$db = dbconnect();
if(preg_match('/\'/i', $_GET[id])) exit("No Hack ~_~");
$_GET[id] = strtolower($_GET[id]);
$_GET[id] = str_replace("admin","",$_GET[id]);
$query = "select id from prob_vampire where id='{$_GET[id]}'";
echo "<hr>query : <strong>{$query}</strong><hr><br>";
$result = @mysqli_fetch_array(mysqli_query($db,$query));
if($result['id'] == 'admin') solve("vampire");
highlight_file(__FILE__);
?>
문제 목표
if($result['id'] == 'admin') solve("vampire");
id가 admin이면 해결된다.
$_GET[id] = strtolower($_GET[id]);
$_GET[id] = str_replace("admin","",$_GET[id]);
입력받은 id를 모두 소문자로 바꾸고 admin이라는 문자열은 공백으로 바꿔 필터링한다.
문제 해결
admin문자열을 공백으로 치환 시 한번의 과정만 진행한다.
?id=adadminmin 이렇게 입력한다면 빨간색 admin은 공백으로 바뀌고 초록색 ad와 min은 남아있어 결국 admin이라는 문자열이 만들어져 필터링을 우회할 수 있다.
728x90
'web > LOS' 카테고리의 다른 글
[LOS] skeleton (0) | 2025.07.25 |
---|---|
[LOS] troll (0) | 2025.07.25 |
[LOS] orge (0) | 2025.07.22 |
[LOS] darkelf (0) | 2025.07.22 |
[LOS] wolfman (0) | 2025.07.21 |