▼ Challenge 46은 다음과 같습니다.
▼ php 코드는 다음과 같습니다.
요약해 보면, GET으로 전송하는 "lv" 값을 치환과 필터링 과정을 거쳐, Query에 Insert 하고,
select 값 중에 $q[0], 즉 id가 "admin"이면 문제가 풀리게 됩니다.
대부분의 사람들이 처음에 "admin의 lv 값은 몇 번일까?"라고 생각할 것 입니다.
하지만 여기서 중요한 것이 ▼ 다음과 같이 단순히 id가 "admin"이면 됩니다.
lv=2 or id='admin'
모든 필터링을 우회하는 것은 성공했지만,
Single Quotes가 먹히질 않는 것을 보니, magic_quotes_gpc가 on 되어 있는 것 같습니다.
Challenge 61번(http://limjunyoung.tistory.com/73) 처럼 16진수로 풀려고 해도, "0x"가 필터링 되어 있습니다.
▼ 다음과 같이 Ascii Code 값을 문자로 바꾸는 char() 함수를 통해 해결하였습니다.
( 공백은 괄호를 이용하여 우회하였습니다. )
'WarGame > webhacking.kr' 카테고리의 다른 글
[webhacking.kr] Challenge 60 :: Race Condition (0) | 2015.12.04 |
---|---|
[webhacking.kr] Challenge 49 :: SQL Injection (Hex) (0) | 2015.12.03 |
[webhacking.kr] Challenge 11 :: Regular Expression (정규표현식) (0) | 2015.12.03 |
[webhacking.kr] Challenge 07 :: SQL Injection (union) (0) | 2015.12.03 |
[webhacking.kr] Challenge 5 :: MySQL Column Truncation Vulnerability (2) | 2015.12.01 |