Giant Write-up

Ccr3t·2025년 8월 3일
0

Wargame

목록 보기
33/55

[Solved in under 2 minutes]

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

이전과는 다른 문제이다.

코드를 정리하자면 인자를 shit으로 받고 이번에는 from [shit]table 이다.
그러나 코드가 붙어있으니 fromporb_giant로 되어있으니 저거를 띄어쓰기만 하면 되는데 필터링에 가만히 보면 공백, \n, \r, \t 가 안된다.

즉, 공백을 우회하는 문제다.

SQL Injection filter bypass

내가 매번 쓰는 녀석을 넣어보자

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ 답 ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

?shit=%0b
?shit=%0c

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

바로 됐다.

%20, %09, %0a, %0d 는 역시나 필터링이 되어 있어 안됐고 그 이외에는 됐다

%0b는 최고다.

LoS(Lord of SQL Injection) Giant Write-up

이상 보고 끝!

profile
웹해킹을 잘 못 하지만 좋아 하려고 노력하는 한 젊은이.

0개의 댓글