두번째 문제_cobolt
<?php
include "./config.php";
login_chk();
$db = dbconnect();
if(preg_match('/prob|_|\.|\(\)/i', $_GET[id])) exit("No Hack ~_~");
if(preg_match('/prob|_|\.|\(\)/i', $_GET[pw])) exit("No Hack ~_~");
$query = "select id from prob_cobolt where id='{$_GET[id]}' and pw=md5('{$_GET[pw]}')";
echo "<hr>query : <strong>{$query}</strong><hr><br>";
$result = @mysqli_fetch_array(mysqli_query($db,$query));
if($result['id'] == 'admin') solve("cobolt");
elseif($result['id']) echo "<h2>Hello {$result['id']}<br>You are not admin :(</h2>";
highlight_file(__FILE__);
?>
소스코드를 보니 gremlin과 크게 다르지 않다.
조금 다른 점이 있다면 입력받은 pw를 md5()로 해시화 하고 있고,
질의한 쿼리문의 결과에서 id값이 admin이어야 한다는 것.
식별&인증은 동시에 하고 있기 때문에
id의 값에 admin을 넣어주고 뒷부분을 주석으로 날려버리자.
역시 해당 페이지 주소창 가장 뒤에 "?id=admin%27%23" 넣어주니 클리어!!
'LoSi' 카테고리의 다른 글
6_LoSi_darkelf (0) | 2022.11.23 |
---|---|
5_LoSi_wolfman with whitespace 우회 (0) | 2022.11.23 |
4_LoSi_orc with addslashes() / substr() (1) | 2022.11.23 |
3_LoSi_goblin (0) | 2022.11.22 |
1_LoSi_gremlin (0) | 2022.11.22 |