반응형

문제는 아래와 같다.


<?php
  
include "./config.php";
  
login_chk();
  
$db dbconnect();
  if(
preg_match('/prob|_|\.|\'|\"/i'$_GET[id])) exit("No Hack ~_~");
  if(
preg_match('/prob|_|\.|\'|\"/i'$_GET[pw])) exit("No Hack ~_~");
  
$query "select id,pw from prob_green_dragon where id='{$_GET[id]}' and pw='{$_GET[pw]}'";
  echo 
"<hr>query : <strong>{$query}</strong><hr><br>";
  
$result = @mysqli_fetch_array(mysqli_query($db,$query));
  if(
$result['id']){
    if(
preg_match('/prob|_|\.|\'|\"/i'$result['id'])) exit("No Hack ~_~");
    if(
preg_match('/prob|_|\.|\'|\"/i'$result['pw'])) exit("No Hack ~_~");
    
$query2 "select id from prob_green_dragon where id='{$result[id]}' and pw='{$result[pw]}'";
    echo 
"<hr>query2 : <strong>{$query2}</strong><hr><br>";
    
$result mysqli_fetch_array(mysqli_query($db,$query2));
    if(
$result['id'] == "admin"solve("green_dragon");
  }
  
highlight_file(__FILE__);
?>


가장 먼저 접근한 방법은 백슬래시를 이용하여 싱글쿼터를 우회하는 방법이였다.

따라서 아래와 같이 접근하였다.



여러가지 테스트를 해봐도 분명 풀려야하는 건데 답이 나오지 않았다.

그러다 query2 부분을 보았다.


일단 답이 풀리기 위해서는 query2가 나와야하는데 해당 부분도 출력되지 않은 것을 통해 접근 방식이 틀렸음을 알 수 있었다.


그래서 아예 prob_green_dragon의 테이블에 데이터가 존재하지 않는다는 방식으로 접근해보았다.

그래서 union 기법이 필터링되어 있지 않아 union을 이용하여 id와 pw를 내가 입력한 것으로 출력되는지 보았다.


union을 이용하여 접근하였더니 query2가 출력되는 것을 볼 수 있었다.

이제 query2의 결과에서 admin만 출력되게 하면 된다.



query1에서 \를 이용하여 싱글쿼터를 우회한 방법과 union을 이용한 select 구문으로 admin이 출력되도록 하였다. 이 때 싱글쿼터는 사용할 수 없으므로 hex값을 이용하여 싱글쿼터를 우회하는 방식을 사용하였다.


1) id 부분에는 id 부분을 이어주기 위해 \만 넣어주었다.

id = \ = 0x5c


2) pw 부분에는 union을 이용하여 select admin을 해주었다.

pw = union select 0x61646d696e# = 0x20756e696f6e2073656c6563742030783631363436643639366523


이 두가지를 이용하여 정답을 써주면 문제가 solve 된다.




정답 : 

https://los.rubiya.kr/chall/green_dragon_74d944f888fd3f9cf76e4e230e78c45b.php?id=\&pw=+union+select+0x5c,0x20756e696f6e2073656c6563742030783631363436643639366523%23%23

반응형

'Solve Problem > LOS' 카테고리의 다른 글

[LOS] RED_DRAGON 문제 풀이  (0) 2019.07.16
[LOS] EVIL_WIZARD 문제 풀이  (0) 2019.06.09
[LOS] hell_fire 문제 풀이  (0) 2019.06.09
[LOS] dark_eyes 문제풀이  (0) 2019.06.02
[LOS] iron_golem 문제풀이  (0) 2019.05.26
블로그 이미지

rootable

,