부트모아 취약점을 분석 중 대표적인 클라이언트 사이드 취약점인 XSS를 발견하였다.
XSS
공격자가 웹 리소스에 악성 스크립트를 삽입해 이용자의 웹 브라우저에서 해당 스크립트를 실행하는 취약점

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

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

스크립트가 실행되는 것을 확인할 수 있었다.
대응
특수문자를 그대로 응답해 발생하는 문제이므로, Response객체에서 특정 특수문자를 html 엔티티로 치환해주기로 하였다.
public static String xssFilter(String str) {
String result = "";
result = str;
result = result.replaceAll("<", "<");
result = result.replaceAll(">", ">");
return result;
}

필터링을 적용하니 특수문자가 치환되어 브라우저가 더이상 스크립트로 해석하지 않고 일반 텍스트로 처리해 XSS 공격을 막을 수 있었다.
'부트모아' 카테고리의 다른 글
[V1] 셀프 조인을 통한 대댓글 구현 (1) | 2024.09.28 |
---|---|
[V2] JPA는 sql injection에 무조건 안전한가? (0) | 2024.09.28 |
[V2] Spring Security CSRF (1) | 2024.09.28 |
[V2] Vault를 사용한 보안 강화 (1) | 2024.09.28 |
[V3] 부하 테스트 세팅 (2) | 2024.09.28 |