소스코드 분석
modsec.rubiya.kr server is running ModSecurity Core Rule Set v3.1.0 with paranoia level 1(default).
It is the latest version now.(2019.05)
Can you bypass the WAF?
<?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($result['id']) solve("cthulhu");
> 값이 존재하면 클리어
2. modsec.rubiya.kr server is running ModSecurity Core Rule Set v3.1.0 with paranoia level 1(default).
> ModSecurity Core Rule Set v3.1.0 level 1의 웹 방화벽 동작 중
문제풀이
새로운 문제가 출제되었다.
4문제 가량 추가되었는데 추가된 문제 모두 웹 방화벽이 동작한다.
이를 우회하는 것이 이번 문제들의 컨셉(?)이라고 할 수 있다.
일단 기본적인 SQLI 구문을 삽입해본다.
?id=' or 1=1-- -
대략 이런식으로 SQL Injection에 쓰이는 구문을 이용할 시 웹 방화벽에서 탐지하여 403 Forbidden 에러 페이지
를 띄워주는 것을 확인 가능하다.
ModSecurity Core Rule Set v3.1.0 bypass
로 검색하면 도움 될 만한 글이 많이 나온다.
이번 문제들을 푸는데 아래의 링크를 참고했다.
https://github.com/SpiderLabs/owasp-modsecurity-crs/issues/1181
링크의 PL1 우회구문은 문제페이지에서 우회되지 않아 PL2 우회구문에 있는 '<@=1
를 이용한다.
?id='<@=1 or 1--
'wargame > Lord Of SQL Injection' 카테고리의 다른 글
[LOS] godzilla (0) | 2019.05.10 |
---|---|
[LOS] death (0) | 2019.05.10 |
[LOS] alien (0) | 2018.08.19 |
[LOS] zombie (0) | 2018.08.18 |
[LOS] ouroboros (0) | 2018.08.09 |