[14번 문제 - giant]
1
2
3
4
5
6
7
8
9
10
11
12
|
<?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__);
?>
|
cs |
해당 문제는 7번 쿼리문을 보면 from 과 prob_giant 사이에 shit 파라미터 값을 받는 것으로 되어있다.
문제를 잘 살펴보면 1234라는 결과만 보여주면 풀린다고 하니 7번 쿼리문에서 shit 파라미터를 공백 문자로 만들어서 쿼리문을 완성시켜주면 된다라는걸 유추할 수 있을 것이다.
대신 shit 파라미터의 길이가 1을 넘지 말아야하고 \n, \r, \t 문자들을 필터링 하고 있다.
이럴 경우에 사용하는 공백문자 우회 방법이 있는데 내 블로그에도 따로 정리해놓은 글이 있다.
"SQL Injection 공백 문자 필터링 우회" 제목으로 게시글이 올라와 있으니 참고하도록 하자.
우회방법만 아는 문제라 추가로 설명할 필요는 없으니 바로 답을 적겠다.
[문제 풀이 구문]
https://los.rubiya.kr/chall/giant_18a08c3be1d1753de0cb157703f75a5e.php?shit=%0c
'워게임' 카테고리의 다른 글
Lord of SQL Injection - 16번 문제풀이 (0) | 2023.01.30 |
---|---|
Lord of SQL Injection - 15번 문제풀이 (0) | 2023.01.24 |
Lord of SQL Injection - 13번 문제풀이 (0) | 2023.01.19 |
Lord of SQL Injection - 12번 문제풀이 (0) | 2023.01.18 |
Lord of SQL Injection - 11번 문제풀이 (0) | 2023.01.16 |