티스토리 뷰
Can You Hit ME ?
아래 그림을 보면 알 수 있듯이 XSS 공격을 하면 된다.
xss 파라미터를 통해서 기본적인 스크립트를 삽입해보면 아래와 같이 표시된다.
xss=<script>alert('xss');</script>
<. >, script가 _ 로 변경된 것을 볼 수 있다. (:, java, document도 변경된다.)
on, eval의 경우 입력하면 값이 사라지는데 이 점을 이용해서 script와 같이 변경되는 문자 사이에 삽입하면 script글자가 변경되는 것을 우회할 수 있다.
scronipt >>> script (대소문자를 변경해서도 가능)
하지만, <, >가 _로 변경되는 것은 위 방법으로 해결할 수가 없다.
소스 코드를 보면 js.js 라는 파일에 의해서 필터링이 되는 것을 알 수 있다.
너무 길어서 파일로 첨부
여기서부터는 아래 두 내용 참조
https://sites.google.com/site/bughunteruniversity/nonvuln/angularjs-expression-sandbox-bypass
http://blog.portswigger.net/2016/01/xss-without-html-client-side-template.html
내용을 읽어보면 {{'a'.constructor.prototype.charAt=[].join;$eval('x=1} } };alert(1)//');}} 를 이용해서 우회한 것을 알 수 있다.
(자세한 내용은 나중에 시간나면 추가)
해당 값을 그대로 사용해보면 일부 문자가 막혀서 사용이 안 되는 것을 알 수 있다.
{{'a'.constructor.prototype.charAt=[].join;$eval('x=1} } };alert(1)//');}}
>>>
{{'a'.coonnstructor.prototype.charAt=[].join;$evevalal('x=1} } };alonert(1)//');}}
XSS 시도
해당 스크립트를 메일로 전송하면 flag 값을 알려준다.
Flag: SSCTF{4c138226180306f21ceb7e7ed1158f08}
'CTF (Git으로 이사 예정)' 카테고리의 다른 글
[CODEGATE2016] Hack No-Jam - Web (365 Point) (0) | 2016.03.31 |
---|---|
[CODEGATE2016] Combination Pizza - Web (222 Point) (0) | 2016.03.31 |
[SSCTF] AFSRC-Market - Web (500) (0) | 2016.03.04 |
[SSCTF] Flag-Man - Web (400) (0) | 2016.03.04 |
[SSCTF] Legend ? Legend ! - Web (300) (0) | 2016.03.03 |
[SSCTF] Up!Up!Up! - Web (100) (0) | 2016.03.01 |
[SharifCTF] technews - Web (200) (0) | 2016.02.09 |
[SharifCTF] PhotoBlog - Web (100) (0) | 2016.02.09 |
[32C3] ITD - Web (150) (0) | 2016.01.19 |
[32C3] Sequence Hunt - Web (200) (0) | 2016.01.13 |