상세 컨텐츠

본문 제목

[Web] XSS WAF&character limitation bypass

기술보안/Web

by about_SC 2020. 4. 7. 16:20

본문

[Web] XSS WAF&character limitation bypass

: 다중 이미지 업로드 기능이 존재하는 곳 등 다양한 포인트에서 발생할 수 있는 XSS의 형태로,
웹방화벽의 특정 문저 필터링, 어플리케이션 단의 길이제한 로직을 무력화 시킬 수 있는 XSS의 형태에 대해 알아보자.

 

Case.

해당 사례는  2019년에 실 사이트에 발생한 실제 사례입니다.
웹 어플리케이션에서 사진을 업로드하는 부분에서 발생한 XSS 취약점입니다.

사진 업로드 프로그램 인터페이스

 

입력값에 따른 응답값에 맞춰 기본구문을 이용해 간단하게 테스트(Reflect XSS)를 진행해보았습니다.

xsstest ' "> {{7 * 7}}

공격 진행 시 아래와 같은 제약사항이 존재했습니다.

- 해당 입력에는 15 개의 문자 제한이 있으므로 xsstest'">{{7*7이러한 문자 를 삽입할 수있었습니다 .
- 특정 특수 문자가 제대로 검증되고 있습니다.
- 그리고 마지막 으로 WAF로 인해 해당 앨범을 다시로드하려고 할 때 /error.aspx?code=500 으로 리디렉션되었습니다.

 

 

위의 사항들로 인해 XSS 공격으로부터 잘 보호된 것으로 보입니다.
하지만, 모든 백그라운드 요청 엔드포인트를 확인 시 추가적인 엔드 포인트를 확인했습니다.

<새로운 공격포인트>
https://subdomain.company.com/ajax/generateImageList.ashx?json={albums:[{"id":" ","value ":"on "}]} 

<공격 시 응답값>
https://image-link.com/image.jpg" title="xsstest'"> "rel ="lightbox [gallery] "> 84 ** 00000 

추가적인 공격 진행 시 확인된 바는 아래와 같습니다.

- 사용자가 입력한 특정 특수문자가 우회되고 있습니다.
- WAF 감지가 없습니다.
- 사용자 입력에 대한 15글자 제약이 존재합니다.

 

15자 내외로 가장 작은 페이로드 입력 시 정상적으로 수행됨을 확인할 수 있습니다.

https://image-link.com/image.jpg" title=""oncut="alert()" rel="lightbox[gallery]"> 84 ** 00000 

빈 팝업

 

 

해당 취약점을 실제 공격에 사용하기 위해서는 15글자 제약을 우회해야합니다.
이 때 사진 업로드 기능이지만, 여러 사진을 업로드 하는 기능을 주시해야합니다.
슬라이드 쇼 옵션을 통해 다중 사진 파일 업로드 기능 이용 시 위의 앤드포인트에서 15글자 제약을 우회하여 공격이 가능하게 됩니다.

페이로드

공격 주입 후 페이지 소스코드
공격이 수행된 피해자 화면

 

 

Reference.

https://medium.com/bugbountywriteup/xss-waf-character-limitation-bypass-like-a-boss-2c788647c229

 

XSS WAF & Character limitation bypass like a boss

Hello Fellow Hackers!

medium.com

 

관련글 더보기