Filtering 발견 및 우회 테크닉
웹 점검을 하다 보면, 웹 방화벽 혹은 소스상에서 특정 키워드를 필터링 하는 경우를 볼 수 있다.
이러한 경우 우회를 하기 위해선 먼저 어떤 문자열들이 필터링 당하는지 확인을 할 필요가 있다.
중요한 것은 먼저 필터링을 "발견" 하는 것이다. 필터링이 적용된 페이지 혹은 사이트의 경우
반응은 여러가지이다. 특정 문자열이 포함될 시 웹사이트의 반응은 아래와 같이 여러가지일 수 있다.
1) 500 에러 발생 2) 200 이지만 에러 페이지로 리다이렉트 3) 그냥 치환 4) 에러 메시지를 통한 자세한 정보 노출 5) 기타.. |
가장 편한 경우는 4) 의 경우이고, 다른 몇가지 경우에도 간단히 필터링되는 문자열을 찾아낼 수 있다.
1) 정상적인 페이지
view.jsp?no=1155 |
2) ' 가 필터링 되지 않아 아래의 경우에도 위와 동일한 응답
view.jsp?no=11'55 |
3) " 는 필터링 되어 오류 메시지
view.jsp?no=1155 |
위와 같은 방식으로 여러가지 특수문자들을 대입해 보면 필터링 당하는 문자열들을 발견할 수 있다.
필터링 당하는 문자열을 파악하고 나면, 공격 페이로드를 구성한 뒤 필터링 당하는 문자열들을 다른 문자열 혹은
함수를 이용하여 우회한다.
1. SQL Injection
1) 키워드 필터링 시
- select, union 등 키워드 우회
-> SeLEct
-> s%E%l%e%c%T
-> selselectect
- or, and, = 등 필터링 시
-> ^, |, & 사용
-> like, between 사용
- ' 필터링 시 문자열 조립
-> char(0x41) + char(0x48)
- 공백 필터링
-> /**/, %20, %2b, + , %09 등
...(작성중)...
'Web Hacking' 카테고리의 다른 글
Banner Grabbing ( 배너 정보 수집 ) (0) | 2013.05.20 |
---|---|
Google Dorking 자동화 (0) | 2013.05.19 |
javascript 난독화(Obfuscation) (0) | 2013.03.21 |
[SQL Injection] - Oracle Error based SQL Injection (0) | 2012.10.18 |
Mysql 에서의 Error Based SQL Injection (5) | 2012.10.18 |