이클립스에서 Stored XSS가 발생하는 원인 찾기

이전 포스트에 이어서 작성하였습니다.

[보안 취약점 진단 및 대응/openeg] - openeg Stored XSS

 

openeg Stored XSS

openeg Stored XSS Stored XSS 취약점이 있는 게시판을 beef-xss 프레임워크를 이용하여 공격 (1) Kali Linux에서 http://victim:8080/openeg사이트로 이동하여 로그인 합니다.(test / test) (2) 메뉴에서 게시판을 클릭하

psjin230.tistory.com


이클립스에서 Stored XSS가 발생하는 원인 찾기

 

(1) eclipse에서 Ctrl + Shift + R을 눌러 BoardController.Java를 검색합니다.

 

(2) 문제가 되는 부분을 확인합니다.

 

(3) 문제가 있는 코드를 수정합니다.

 

(4) 실행결과 확인

=> Window xp(사용자)에서 게시판 본문을 다시 확인해보면, 공격자가 작성한 스크립트 코드가 실행되지 않고 단순 문자열로 출력되는 것을 확인할 수 있습니다.

=> 추가 문제점: 내용 외 제목, 댓글 등 게시글에 삽입된 스크립트 코드는 실행이 될까? 


(5) 게시글을 새롭게 작성합니다.

제목과 내용에 모두 스크립트 코드를 작성해보면, 내용에 작성된 스크립트는 단순 문자열로 출력되지만, 제목에 작성된 스크립트는 동작합니다.

제목과 내용에 스크립트 코드 포함

 

스크립트를 막아야하는 곳이 5개 정도면 (3)과 같이 각각 해주면 되지만, 만약 50개라면 어떻게 해야할까요?

=> 이럴 땐, 뷰(사용자 화면을 만드는 부분)에서 안전하게 출력되도록 수정할 수 있습니다.

 

(6) eclipse에서 Ctrl + Shift + R을 눌러 list.jsp를 검색합니다.

 

(7) 문제가 되는 부분을 확인합니다.

이클립스 코드

 

게시글 개발자 모드로 확인

=> 제목에 스크립트 코드 포함되어 있음

 

(8) 문제가 있는 코드를 수정합니다.

JSTL에서 제공하는 <c:out>을 이용하여 수정하려고 합니다.

이클립스 코드 수정

 

(9) 실행결과 확인

게시글 확인

=> 게시판을 새로고침해서 다시 확인해보면 제목에 포함되어 있던 스크립트 코드가 동작하지 않고, 단순 문자열로 출력되는 것을 확인할 수 있습니다.