본문 바로가기

ETC/추천

XSS(크로스 사이트 스크립팅)은 왜 인터넷 익스플로러에서 필터될까요?

취약점 진단이나 모의해킹을 해 본 친구들이라면 혹은 공부해본 친구들이라면 한번쯤 생각해 봤을 법한 질문이다.


하지만 알고보면 너무나도 간단한 사실인데 행하지 않는다. 


그냥 궁금해하고 왜 그러지 질문만 할 뿐. 


보안 1기부터 현재까지 스터디을 함께한 친구 중 한명이 궁금해서 찾기 시작했고 


찾아서 원인을 알고 나에게 기뻐서 새벽에 카톡한 문자가 아직 생생하다. ㅎㅎ


그 어디서도 찾아보기 드믄 귀한 열정과 관심이다.


그런 친구들을 만나 같이 스터디함을 너무 감사하게 생각한다.


그 친구도 나와 비슷한 시기에 블로그를 생성해서 아직 글은 적지만


향후 1년 뒤 2년 뒤 엄청난 컨텐츠와 습득한 기반지식을 토대로 발전하는 모습을 기대해본다.






출처 : http://blog.naver.com/hjw_

웹 취약점 진단을 공부하다가 XSS 시도를 하였을 때 브라우저 단에서 막히는 일이 종종 있다.

어떤 원리로 스크립트를 필터링 하는지 궁금해서 알아보았다.

XSS필터는 아래와 같이 걸러낸다. 


Q. 필터링은 어떻게 하는가? 
A. 정규 표현식으로 필터링한다.

정규식이 뭐였는지 갑자기 기억 안나시는 분들은 아래 예제를 보면 바로 기억이 날 것이다.

[ 예제 ] style 태그를 필터링하는 정규 표현식

① 속성으로 /, tab, “, ‘중 하나 
② 문자열이 더 포함되어 있는 경우 Style  뒤 동일한 문자열의 요청을 잘라낸다.
③ 앞 문자열이 (나 \가 존재 시 요청을 자른다 
④ : 또는 \

요청값/응답값을 정규식과 비교하여 일치하는 경우를 공격구문이라고 판단한다.
공격구문으로 판단되면 브라우저는 공격구문의 일부를 "#"으로 바꾼다.
크롬 같은 경우에는 아예 실행시키지 않는다.

그럼 정규식은 어디에 있을까?
C:/WINDOWS/SYSTEM32/mshtml.dll에 있다. 조회를 해보면 아래와 같이 확인할 수 있다.


XSS 필터를 이용하면 Reflected XSS(반사 XSS) 취약점을 예방하는 대책이 된다.
익스플로러의 경우 [인터넷 옵션]- [보안]-[사용자 지정 수준] 에서 스크롤을 끝까지 내리면 
[XSS 필터 사용] 항목 체크란이 나온다. [사용]에 체크하면 XSS 필터가 적용된다. 물론 디폴트값이 사용으로 되어있을 것이다.