| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 |
Tags
- 취약점 진단
- sql injection
- 리눅스
- Bandit
- 밴딧
- androidhacking
- time-based
- 모의해킹
- androGoat
- 안드로이드 모의해킹
- msfconsole #heartbleed #247ctf #misc #webhacking
- pentest
- Linux
- error-based
- 쿠키변조
- bandit #밴딧 #웹해킹 #해킹 #화이트해커 #공부 #스터디 #IT #hacking #linux #openssl #nmap
Archives
- Today
- Total
d0r1
[webhacking] old 61 본문
<?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>";
?>
다음과 같은 코드가 존재한다

사이트에는 소스코드를 보는 버튼만 존재하고, 이외의 버튼은 존재하지 않는다
result[id]가 admin이어야 문제가 풀린다
처음에 id가 admin이면 되는줄 알고, ?id='admin'을 넣었는데 안풀렸다
확인해보니, 결과의 id가 admin이어야 풀리는 문제였다.

다음의 결과를 참고하여,
id='admin' as id
를 하려 했다
그럼에도 불구하고, 문제가 풀리지 않았다.
아무래도 공개되지 않은 필터링이 존재하는 듯 했다.
admin을 hex값으로 변환하여 대입을 하자

admin --> 0x61645d696e
그러나 위의 조건 중 15글자를 넘으면 안된다는것이 존재하고
id=0x61646d696e as id 를 하게 되면 15글자를 넘기에
as는 생략이 가능한 점을 이용해서
id=0x61646d696e id 를 대입해주었더니

'webhacking' 카테고리의 다른 글
| [webhacking] old 7 (0) | 2023.11.08 |
|---|---|
| [webhacking] old-56 (0) | 2023.11.07 |
| [webhacking] old-49 (0) | 2023.11.07 |
| [webhacking] old-02 (0) | 2023.11.07 |
| [webhacking.kr] old-23 (0) | 2023.08.29 |