본문 바로가기
해킹/LoS(Lord of SQL Injection)

[Los] giant 풀이

by yenua 2022. 6. 12.
반응형

https://los.rubiya.kr/

 

Lord of SQLInjection

 

los.rubiya.kr

거인은 여러가지 신화나 전설, 판타지에 등장하는 전설의 생물의 일종으로, 장신·거체의 신이나 인간 혹은 인형의 생물, 아인간이다. - 위키백과

 

los의 거인을 처리해보자.

 

기본 쿼리문 및 소스코드는 아래와 같다. 

 

소스코드를 살펴보자.

<?php 
  include "./config.php"; 
  login_chk(); 
  $db = dbconnect(); 
  if(strlen($_GET[shit])>1) exit("No Hack ~_~"); 
  if(preg_match('/ |\n|\r|\t/i', $_GET[shit])) exit("HeHe"); 
  $query = "select 1234 from{$_GET[shit]}prob_giant where 1"; 
  echo "<hr>query : <strong>{$query}</strong><hr><br>"; 
  $result = @mysqli_fetch_array(mysqli_query($db,$query)); 
  if($result[1234]) solve("giant"); 
  highlight_file(__FILE__); 
?>

쿼리문을 보면 from과 prob_giant 사이에 공백이 없고 shit 인자를 집어넣은 상태이다. 따라서 우리는 shit 인자를 통해 저 사이에 공백을 주어 쿼리문이 정상적으로 실행되도록 해야 한다.

그런데 스페이스와 개행(\n), 캐리지리턴(\r), 탭(\t)가 필터링 되고 있다.

 

그러나 공백문자, 화이트스페이스에는 필터링 된 문자들 말고도 2개나 더 있다.

문자 유니코드 아스키코드 이름
  U+0020 32 space (SPC)
\\t U+0009 09 horizontal tab (TAB)
\\n U+000A 0A newline (LF)
\\v U+000B 0B vertical tab (VT)
\\f U+000C 0C feed (FF)
\\r U+000D 0D carriage return (CR)

%0b, %0c로 우회가 가능할 것이다.

참고로, url에서는 +도 화이트스페이스로 처리가 되지만, 스페이스로 처리되므로 필터링된다.

아스키코드 값인 2b를 입력하면 문자 +가 입력된다.

 

아래와 같이 거인을 처리가능 하다.

shit: %0c

url: ?shit=%0c

query : select 1234 from prob_giant where 1

 

 

반응형

'해킹 > LoS(Lord of SQL Injection)' 카테고리의 다른 글

[Los] succubus 풀이  (0) 2022.06.12
[Los] assassin 풀이  (0) 2022.06.12
[Los] bugbear 풀이  (0) 2022.06.12
[Los] darkknight 풀이  (0) 2022.06.12
[Los] golem 풀이  (0) 2022.06.12