1을 입력하면 guest가 나오게 되고, 2를 입력하면 query error가 나오게 됩니다.
짐작해보면 admin은 0아니면 2라고 생각해 볼 수 있습니다.
소스를 확인해보면 eregi()로 많은 문자열들을 필터링하고 있습니다.
select 부분에 no=($_GET[no]) 가 Injection Point라는 것을 확인합니다.
① eregi를 보니 '(' 는 필터링을 하지만 ')' 는 필터링을 하고 있지 않습니다.
② '#'과 '/'를 필터링 하지만 '--' 는 필터링 하지 않아 주석을 사용할 수 있습니다.
③ '='는 필터링 하지만 "like"는 필터링 하지 않아 등호를 사용할 수 있습니다.
④ 'or '를 필터링 하지 않습니다.
이를 토대로 2) or no like 2-- 를 사용해서 문제를 해결 할 수 있습니다.
(-- 사용 시 뒤에 문자열 1개 필요)
'WarGame > webhacking.kr' 카테고리의 다른 글
[webhacking.kr] prob 33 (0) | 2018.12.06 |
---|---|
[webhacking.kr] prob 32 (0) | 2018.12.05 |
[webhacking.kr] prob 26 (0) | 2018.12.05 |
[webhacking.kr] prob 21 (0) | 2018.12.05 |
[webhacking.kr] prob 20 (0) | 2018.12.04 |