웹 해킹/웹 해킹
모의해킹 공부 9주차 (XSS)
Almon
2024. 12. 13. 17:23
9주 차 정리
XSS (Cross-site Scripting)
스크립트를 삽입해서 클라이언트 측 브라우저에서 실행하는 기법
=> HTML, CSS, JS 삽입
Stored XSS
스크립트를 서버에 저장해서 사이트에 접속하는 유저의 브라우저에서 실행하는 기법
=> 데이터가 저장되는 곳과 출력되는 곳이 다를 수 있음
ex)
저장되는 곳 : 회원가입, 게시글 작성, 댓글 작성
출력되는 곳 : 마이페이지, 프로필, 게시글 확인, 댓글 확인
Stored XSS Process
1. 작성한 데이터가 화면에 출력되는지 확인
=> 브라우저가 아니라 Burp를 이용해서 확인하기
2. 특수문자가 가능한지 확인
=> XSS에 사용될만한 특수문자 < ' " >가 적용되는지 확인
3. JS 삽입해 보기
<script>alert(1)</script>과 같은 보여주기용 증명 스크립트를 삽입해 보기
=> 증명용 코드는 보고서 쓰기에 좋음
Replected XSS
파라미터 데이터가 서버 응답에 삽입되어 오는 경우 사용될 수 있는 기법
=> 데이터를 보내는 Request의 Response에 삽입되어 응답이 와야 합니다.
ex)
아이디 중복 확인 응답 : ____아이디가 사용이 가능합니다.
검색 기능의 응답 : ____에 대한 검색 결과
Replected XSS Process
1. 파라미터에 삽입한 데이터가 서버 응답으로 오는지 확인
=> Burp에서 Response에 바로 삽입되어 오는지 확인합니다.
2. 특수문자 확인
=> < ' " > 특수문자를 삽입하여 사용이 가능한지 확인하기
3. JS 삽입
<script>alert(1)</script> 삽입
Replected XSS 같은 경우는 서버에 스크립트를 저장해 두는 경우가 아니라
요청에 스크립트가 삽입되어 있으므로 GET메서드를 이용해 url에 파라미터로 전달해야 합니다.
=> 공격을 하기 위해서는 타깃이 url에 접속하도록 유도해야 합니다.
=> 서버에 흔적이 남지 않습니다.
과제
1. XSS 내용 정리
2. ctf XSS 1~6 문제에 대해 보고서를 작성해서 메일로 제출하기
3. 웹개발
4. 내가 만든 웹사이트에서 XSS 찾아보기