🕵️ CSRF-Get Admin 3 문제 풀이
CSRF-Get Admin 3을 풀어보자. 흐름상 이번에는 CSRF토큰이 나올 것 같다.

마이페이지에 들어가니 역시나 hidden으로 csrf_token을 던져주고 있다. 관리자의 token을 XSS를 이용하여 탈취하고, 그 정보를 포함하여 CSRF공격을 하면 될 것 같다. 개념까지는 괜찮은데 실제 payload를 만드는 것은 쉽지 않을 것 같다.
XSS가 되는 페이지 안에 크게 이런식으로 가면 될 것 같다.
- Token을 탈취하는 XSS 공격을 통해 token을 탈취한다.(이때 탈취용 iframe이 필요함)
- Form을 전송하고 response를 받을 stealth iframe을 만든다.
- Form과 attack()함수를 정의하고 submit하여 CSRF공격을 한다.
먼저 TOKEN을 어떻게 꺼내올 지 생각해봐야 하는데, 위치부터 파악해보자.

이렇게 하면 토큰값을 꺼내올 수 있다.


🔍 페이로드 해석
페이로드를 해석해보자면 다음과 같다.
- fsi6의 마이페이지를 안보이게 iframe으로 불러오고, 로드가 끝나면 attack()함수를 실행하도록 한다.
(실제로 공격할때는 네모친 부분을 fsi6_admin으로 변경해야한다) - Form의 요청과 응답을 주고받을 안보이는 iframe을 하나 더 만든다.
- 1의 로드가 끝나면 실행되는 attack()함수는 stolen_token이라는 변수를 만들고 거기에 XSS로 아까 위의 1에서 훔쳐온 csrf_token을 집어넣고, form_token이라고 선언된 변수 안에 stolen_token 값을 집어넣은 뒤 myform을 제출하게 한다.
(form_token value에 stolen_token을 넣고 input쪽에 id="form_token"으로 선언해주는 것만으로 value가 입력이 된다) - 마지막으로 봐야할 form은 POST형식으로 정보를 보내는 myform인데 pw를 12345로 변경하도록 되어 있다.
💡 기술적 포인트 (참고)
- onload 이벤트: iframe에 대상 페이지(마이페이지)가 완전히 로드되어 토큰값이 생성된 후에 스크립트가 실행되어야 하므로 필수적
- contentDocument: 부모 창에서 iframe 내부의 DOM 객체(토큰값 등)에 접근하기 위해 사용되는 속성
3. 결과 확인
관리자 봇에게 게시글을 읽게 한 뒤, fsi6_admin 계정에 설정한 비밀번호 12345를 입력하니 성공적으로 로그인되며 플래그를 획득할 수 있었다.

여기서 우리가 알아야했던건 XSS 공격포인트와, 공격 대상의 ID(fsi6_admin)이었고 나머지는 공격 과정에서 획득할 수 있다.
XSS와 CSRF를 연계해서 보안 토큰까지 우회해본 아주 유익한 문제였다. 끝! 😎
'해킹스터디' 카테고리의 다른 글
| [Normaltic 웹해킹 입문] 12주차 CSRF-Get Admin 2 (0) | 2026.01.06 |
|---|---|
| [Normaltic 웹해킹 입문] 12주차 CSRF-Get Admin 1 (0) | 2026.01.05 |
| [Normaltic 웹해킹 입문] 12주차 CSRF-내용정리 (3) | 2026.01.05 |
| [Normaltic 웹해킹 입문] 10주차 문제풀이 Steal info 2. (0) | 2026.01.02 |
| [Normaltic 웹해킹 입문] 10주차 문제풀이 Steal info 1. (0) | 2026.01.02 |