[LOS] 14. Giant

고둑·2021년 7월 16일
0

LoS

목록 보기
14/21
post-thumbnail
post-custom-banner

힌트

  • 쉬어가는 문제…. 어렵게 생각 ㄴ
  • shit의 위치

풀이

코드 해석

<?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__); 
?>

소스 코드부터 매우 간결하다. 공백을 제외하면 별다른 필터링도 보이지 않는다.
하지만 이상한 위치에 들어가는 shit이라는 특이한 파라미터를 받고 있다.

문제 풀이

공백 우회

진짜 어렵게 생각할 필요가 없다.
주어진 쿼리로 제대로 동작하는 쿼리를 만들어보면 select 1234 from prob_giant where 1 이다.
따라서 shit부분에 공백이 들어가면 된다.
따라서 shit=%0b 이런 식으로 공백을 우회해주면 문제는 풀리게 된다.

https://los.rubiya.kr/chall/giant_18a08c3be1d1753de0cb157703f75a5e.php?shit=%0b

profile
문워킹은 하지말자
post-custom-banner

0개의 댓글