Notice
Recent Posts
Recent Comments
Link
«   2024/10   »
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 31
Archives
Today
Total
관리 메뉴

아모에요

[webhacking.kr] old-07 본문

Study/Hacking

[webhacking.kr] old-07

dys4nt 2023. 6. 14. 13:29
<?php
$go=$_GET['val'];
if(!$go) { echo("<meta http-equiv=refresh content=0;url=index.php?val=1>"); }
echo("<html><head><title>admin page</title></head><body bgcolor='black'><font size=2 color=gray><b><h3>Admin page</h3></b><p>");
if(preg_match("/2|-|\+|from|_|=|\\s|\*|\//i",$go)) exit("Access Denied!");
$db = dbconnect();
$rand=rand(1,5);
if($rand==1){
  $result=mysqli_query($db,"select lv from chall7 where lv=($go)") or die("nice try!");
}
if($rand==2){
  $result=mysqli_query($db,"select lv from chall7 where lv=(($go))") or die("nice try!");
}
if($rand==3){
  $result=mysqli_query($db,"select lv from chall7 where lv=((($go)))") or die("nice try!");
}
if($rand==4){
  $result=mysqli_query($db,"select lv from chall7 where lv=(((($go))))") or die("nice try!");
}
if($rand==5){
  $result=mysqli_query($db,"select lv from chall7 where lv=((((($go)))))") or die("nice try!");
}
$data=mysqli_fetch_array($result);
if(!$data[0]) { echo("query error"); exit(); }
if($data[0]==1){
  echo("<input type=button style=border:0;bgcolor='gray' value='auth' onclick=\"alert('Access_Denied!')\"><p>");
}
elseif($data[0]==2){
  echo("<input type=button style=border:0;bgcolor='gray' value='auth' onclick=\"alert('Hello admin')\"><p>");
  solve(7);
}
?>

문제 코드를 보면 SQLi로 data[0] 값을 2로 만들면 되는 문제인데, '2','-','+','from','_','=','\s','*','/' 문자열이 필터링되어있다.

 

$go에 들어갈 수 있는 연산은 무궁무진하다.

XOR 연산을 사용해서 1^3 = 2

비트 쉬프트 연산을 사용해서 1<<1 = 2

나머지 연산을 사용해서 5%3=2 등등 을 대입하면 될 줄 알았는데

 

query error가 뜬다.v

이를 해결하기 위해서 union을 사용해보자.

 

 

val=13)union(select(1^3));%00

괄호를 한개만 우회했으므로 5번정도 돌리면 문제가 풀린다.

 

 

'Study > Hacking' 카테고리의 다른 글

[webhacking.kr] old-10  (0) 2023.06.14
[webhacking.kr] old-09  (0) 2023.06.14
[SECGAME] Response  (0) 2023.06.13
[webhacking.kr] old-06  (0) 2023.06.13
[webhacking.kr] old-05  (0) 2023.06.13