XSS_1 풀이
- 해당 문제는 XSS를 실습할 수 있는 문제이다. 이 문제는 처음에 로그인을 하고 들어가면 게시판이 있는 것을 알 수 있다.
- 글 쓰기를 누르면 아래와 같이 제목과 내용에 글을 쓰고 create 버튼을 누르면 게시글이 작성이 완료된다.
XSS 취약점 발견
/*제목*/<script>alert('hello')</script>
/*내용*/<script>alert('hi')</script>
- 해당 코드를 제목과 내용에 넣고 게시글을 누르자 위와 같은 알림창이 나왔다.
- 하지만 내용에 있는 script는 실행되지 않고 게시글에 출력이 되었다.
원인 확인
- 내용에 있는 script가 실행되지 않은 이유를 찾기 위해 해당 페이지를 다운로드 받아 VSC로 확인해보았다.
<script>alert('hi')</script>
<script>alert('hi')</script>
- '<' 와, '>' 필터링 되어서 <, >로 바뀐것을 알 수 있었다.
- 필터링을 한 주체가 누구일까 궁금해 '<','>'로만 게시글을 작성해서 보내보았다.
- Client 측에서 Request를 보낼 때는 title, body 둘다 '<'와 '>'를 정상적으로 보내는 것을 알 수 있다.
- 이를 통해서 notice_write_process.php가 body 부분에 들어오는 '<','>'를 <, >로 변환해 DB에 저장하는 것을 알 수 있다.
- posting_contents를 보면 '<', '>'가 <, >로 변환된 것이 보인다.