%를 이용한 보안 장비 우회
이 링크를 읽어보시면 됩니다. 저는 이전에 SANS 다이어리 ASPROX mutant 글을 보고, 헐랭이 님의 대량 SQL injection의 변화 포스트에 링크된 보고서를 그냥 지나쳤는데, 거기에 %를 이용하여 탐지를 회피한다는 내용이 써있었네요. 버그트럭 메일링을 보고 나서야 다시 보게 되었습니다.
문제의 원인은 ASP가 %에 이어지는 16진수를 디코드할 수 없는 경우 %를 제거하고 웹 어플리케이션으로 데이터를 넘긴다는데 있습니다. 즉, DEC%LARE나 e%xec 처럼 쓰게 되면 DECLARE 혹은 exec로 전달된다는 것입니다. 이 때문에 웹 방화벽 등에서 제대로 탐지를 못 하고 넘어가게 됩니다.
쿠키의 경우는 그냥 탐지 대상으로 추가해버리면 되겠지만 %의 경우에는 ASP 사이트에 한정해서 적절한 전처리가 필요하겠네요. 사이트 관리하시는 분들은 주의하시고 웹 방화벽 업체에서도 빠른 대응이 되길 기대합니다.
제일 좋은 방안은 역시 취약점 자체를 근본적으로 제거하는 것이겠지만 말입니다. ASP로 개발된 대형 사이트라면 취약 지점을 식별하는 것 자체도 쉽지 않으리라 생각됩니다.
트랙백 주소 : http://nchovy.kr/forum/2/article/275/trackback




