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

+ Recent posts