반응형
문제 5번 - wolfman
query : select id from prob_wolfman where id='guest' and pw=''
<?php
include "./config.php";
login_chk();
$db = dbconnect();
if(preg_match('/prob|_|\.|\(\)/i', $_GET[pw])) exit("No Hack ~_~");
if(preg_match('/ /i', $_GET[pw])) exit("No whitespace ~_~");
$query = "select id from prob_wolfman where id='guest' and pw='{$_GET[pw]}'";
echo "<hr>query : <strong>{$query}</strong><hr><br>";
$result = @mysqli_fetch_array(mysqli_query($db,$query));
if($result['id']) echo "<h2>Hello {$result[id]}</h2>";
if($result['id'] == 'admin') solve("wolfman");
highlight_file(__FILE__);
?>
일단 다른 문제들과 마찬가지로 php코드가 주어져있다.
먼저 필터링함수를 확인해보면 앞선 문제들과 같이 prob와 _ , . , ( , )을 필터링하지만 추가로 공백을 필터링하는 것을 알 수 있다. 추가로 i를 통해 대소문자를 구별하지 않는 것도 확인할 수 있다.
<?php
if(preg_match('/prob|_|\.|\(\)/i', $_GET[pw])) exit("No Hack ~_~");
if(preg_match('/ /i', $_GET[pw])) exit("No whitespace ~_~");
?>
또 clear조건을 확인하기 위해 조건문 코드를 확인해보면 result에 참인 값이 들어가면 되는 것이 아니라 result에 id가 admin이어야한다는 것을 알 수 있다.
<?php
$query = "select id from prob_wolfman where id='guest' and pw='{$_GET[pw]}'";
echo "<hr>query : <strong>{$query}</strong><hr><br>";
$result = @mysqli_fetch_array(mysqli_query($db,$query));
if($result['id']) echo "<h2>Hello {$result[id]}</h2>";
if($result['id'] == 'admin') solve("wolfman");
highlight_file(__FILE__);
?>
필터링 함수와 조건문을 확인해보니 공백 없이 다른 문제들과 같이 id를 admin으로 설정해주면 된다는 것을 알 수 있다. 공백이 필터링될 때 이용이 제한되는 문구는 and와 or 문구이다. 왜냐하면 얘네는 띄어쓰기를 한 상태에서 사용해줘야 하기 때문이다. 따라서 and와 or을 대체할 수 있는 것을 찾아보았다.
찾아보니 and 대신에 && or 대신에 ||을 사용할 수 있다는 것을 알게 되었다. (얘네는 띄어쓰기 필요 X)
따라서 해당 주소 php 뒤에 pw='||id='admin'%23을 입력한다.
solve
https://los.rubiya.kr/chall/wolfman_4fdc56b75971e41981e3d1e2fbe9b7f7.php?pw=%27||id=%27admin%27%23
반응형
'write-up > LOS write-up' 카테고리의 다른 글
LOS (Lord of SQL injection) 문제 7번 orge write-up (3) | 2021.07.06 |
---|---|
LOS (Lord of SQL injection) 문제 6번 darkelf write-up (0) | 2021.07.06 |
LOS (Lord of SQL injection) 문제 4번 orc write-up (0) | 2021.07.06 |
LOS (Lord of SQL injection) 문제 3번 goblin write-up (0) | 2021.07.06 |
LOS (Lord of SQL injection) 문제 2번 cobolt write-up (0) | 2021.07.05 |