부트모아

[V2] 부트모아 사이트 XSS 필터링

승무_ 2024. 9. 28. 14:39

부트모아 취약점을 분석 중 대표적인 클라이언트 사이드 취약점인 XSS를 발견하였다.

XSS
공격자가 웹 리소스에 악성 스크립트를 삽입해 이용자의 웹 브라우저에서 해당 스크립트를 실행하는 취약점

 

위 같은 게시글을 공격자가 작성한다고 하였을 떄,

게시글 목록에서 방금 작성한 게시글을 열람하면

스크립트가 실행되는 것을 확인할 수 있었다.

 

대응

특수문자를 그대로 응답해 발생하는 문제이므로, Response객체에서 특정 특수문자를 html 엔티티로 치환해주기로 하였다.

public static String xssFilter(String str) {
    String result = "";

    result = str;
    result = result.replaceAll("<", "&lt;");
    result = result.replaceAll(">", "&gt;");

    return result;
}

 

 

 

 

필터링을 적용하니 특수문자가 치환되어 브라우저가 더이상 스크립트로 해석하지 않고 일반 텍스트로 처리해 XSS 공격을 막을 수 있었다.