Almon Dev

모의해킹 공부 9주차 (XSS) 본문

웹 해킹/웹 해킹

모의해킹 공부 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 찾아보기