Webhacking.kr old-7 풀이

2024. 1. 5. 01:27· Web Hacking/Webhacking.kr
728x90

<?php
  include "../../config.php";
  if($_GET['view_source']) view_source();
?><html>
<head>
<title>Challenge 7</title>
</head>
<body>
<?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!"); // \\s => 모든 공백
$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);
}
?>
<a href=./?view_source=1>view-source</a>
</body>
</html>

lv 에 2가 들어가면 되는 문제이다. 

2가 필터링 되어있으니 이진수로 먼저 접근해주었다.

음... 코드상으론 문제가 없는데 2진수로는 접근이 안된다. 그러면 +, -, / 연산자는 필터링 되어있으니 %연산자를 써봤다.

이래도 안되는걸 보니 아마 val값을 문자로 읽는것 같다. union이 필터링 되어있지 않으니 union으로 접근해주었다.

val = 6)union(select(5%3)

union으로 접근해보니 nice try!라고 뜬다. rand가 1일때만 정상적으로 작동하는 코드이니 한번 계속 새로고침해보면

풀리게 된다.

 

***

\\s 는 모든 공백 문자 탐지를 뜻한다. 

728x90
반응형
저작자표시 비영리 변경금지

'Web Hacking > Webhacking.kr' 카테고리의 다른 글

Webhacking.kr old-05 풀이  (0) 2024.01.06
Webhacking.kr 60번 풀이  (0) 2024.01.05
Webhacking.kr old-49 풀이  (0) 2024.01.04
Webhacking.kr old-11 풀이  (0) 2023.12.31
Webhacking.kr old-21 풀이  (0) 2023.12.27
'Web Hacking/Webhacking.kr' 카테고리의 다른 글
  • Webhacking.kr old-05 풀이
  • Webhacking.kr 60번 풀이
  • Webhacking.kr old-49 풀이
  • Webhacking.kr old-11 풀이
프레딕
프레딕
250x250
반응형
프레딕
소소한 해킹 블로그
프레딕
전체
오늘
어제
  • 분류 전체보기 (241)
    • etc (1)
    • PS (72)
      • Greedy (4)
      • DFS, BFS (16)
      • DP (14)
      • Stack, Queue (2)
      • 재귀 (10)
      • 이분 탐색 (1)
      • 문자열 (4)
      • 분할 정복 (2)
      • 기타 알고리즘 (19)
    • Book Review (5)
      • 알고리즘 문제 해결 전략 (3)
      • Clean Code (1)
      • The Programatic Programmer (1)
    • Web Hacking (110)
      • Webhacking.kr (42)
      • DreamHack (38)
      • Information (18)
      • Los Rubiya (1)
      • WriteUp (11)
    • Web3 (24)
      • The Ethernaut (22)
      • Information (2)
    • Reversing (18)
      • Reversing.kr (4)
      • DreamHack (3)
      • Information (11)
    • Pwnable (3)
      • DreamHack (2)
    • Misc (1)
      • PyJail (1)
    • Network (6)
    • Dev (1)
      • Flask (1)

블로그 메뉴

  • 홈
  • 태그

공지사항

인기 글

태그

  • 시간복잡도
  • 알고리즘
  • Algorithm

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
프레딕
Webhacking.kr old-7 풀이
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.