Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- SQLi
- cce2023
- pwnable
- regex
- SECGAME
- Crypto
- 백준
- blind-sqli
- pwn
- pwn.college
- webhacking.kr
- cookie
- PS
- HTB
- cryptohack.org
- Bob
- blind_sqli
- web
- 예전글 #CNN
- 예전글 #PS
- Pwnable.kr
- XSS
- JS
- 예전글
Archives
- Today
- Total
아모에요
[webhacking.kr] old-08 본문
<?php
$agent=trim(getenv("HTTP_USER_AGENT"));
$ip=$_SERVER['REMOTE_ADDR'];
if(preg_match("/from/i",$agent)){
echo("<br>Access Denied!<br><br>");
echo(htmlspecialchars($agent));
exit();
}
$db = dbconnect();
$count_ck = mysqli_fetch_array(mysqli_query($db,"select count(id) from chall8"));
if($count_ck[0] >= 70){ mysqli_query($db,"delete from chall8"); }
$result = mysqli_query($db,"select id from chall8 where agent='".addslashes($_SERVER['HTTP_USER_AGENT'])."'");
$ck = mysqli_fetch_array($result);
if($ck){
echo "hi <b>".htmlentities($ck[0])."</b><p>";
if($ck[0]=="admin"){
mysqli_query($db,"delete from chall8");
solve(8);
}
}
if(!$ck){
$q=mysqli_query($db,"insert into chall8(agent,ip,id) values('{$agent}','{$ip}','guest')") or die("query error");
echo("<br><br>done! ({$count_ck[0]}/70)");
}
?>
HTTP_USER_AGENT 값에서 from을 필터링한다.
HTTP_USER_AGENT 값이 db에 저장되어있지 않으면 agent=$_SERVER['HTTP_USER_AGENT],ip=$_SERVER['REMOTE_ADDR'],id='guest'를 db에 저장한다.
여기서 agent 값을 마음대로 조작하여 sqli를 발생시킬 수 있다.
User-Agent를 dys4nt','127.0.0.1','admin')#로 변경하고
User-Agent를 dys4nt로 변경하면 문제가 풀리게 된다.