상세 컨텐츠

본문 제목

Segfault CTF - (12주 차) GET Admin 1

컴퓨터/보안 - CTF문제

by 디멘터 2024. 7. 7. 21:47

본문

※ 주의 : 보안 관련 학습은 자유이지만, 학습 내용을 사용한 경우 법적 책임은 행위자에게 있습니다.
(Note: Security-related learning is allowed, but the individual is solely responsible for any legal consequences arising from the use of the acquired knowledge.)


※ CTF - Capture The Flag
※ 문제 푸는 방법이 다양할 수도 있습니다.


SegFault CTF - GET Admin 1

 

1. 목표 : $ID_admin계정을 탈취하여 Flag획득

 

2. 접근 방법 

  • 계정을 탈취 하는 방법(XSS, CSRF)
  • - XSS로 쿠키를 탈취하여 로그인하는 방법
  • - CSRF로 비밀번호 변경 요청을 보내는 방법
  • 계정을 탈취하지 않고  Flag만 획득하기
  • - iframe으로 HTML소스 코드를 긁어오는 방법
  •   (document.documentElement.outerHTML)

3. 방법 선택

  • XSS로 쿠키를 가져오는 방법은 간단하지만 Secure,HttpOnly옵션 때문에 불가능 할 것 같아서 생략.
  • iframe으로 HTML 소스 코드 긁어오는 방법은 아마 잘 될 것 같아서 생략.
  • CSRF 방법은 두가지이다. GET method로 바로 비밀번호를 변경하는 방법, FORM태그를 쓰고 submit을 하는 방법
  • SQLi의 취약점이 있으면 SQLi로도 할 수 있다.


  • CSRF 진행

    일단 비밀번호 변경 로직을 알아야 한다.
    비밀번호 변경로직을 살펴보니 GET으로 날려도 될 것 같다. 리피터로 보내서 GET method로 바꿔어 URL을 확보하자.

    GET method로 확보한  URL

이렇게 작성해 보았다. setTimeout은 게시글 수정하기가 불편해서 넣어봤는데 봇 시간 때문에 안될 수도 있어서, 안되면 시간을 줄여봐야한다.

 

<script>
setTimeout(function(){
  },200);
 </script>

<h1>hi hello 안녕?</h1>



결과가 랜덤인지? 결과가 다르다.
URL 끝이 &view=1를 붙이기도 해보고 떼보기도 했으나 관리자는 더 이상 속지 않았다.

 
 
아무래도 대충만들어서 이런 alert가 떠서 알아 차렸다는 뜻 같다.
iframe으로 이것 저것.. 스크립트로 스크립트를 막는 것까지 시도 해봤는데 안되었다.
 

관리자는 alert를 보고 알아차렸다!

 
정직한 제목에 내용은 성의를 더하자.

 
게시글에 삽입한다. img src라서 alert창이 안뜬다!
 

잡았다~!
이제 t1234_admin 계정은 내가 바꾼 비번이 되었을 것이다.

 

로그인하니 alert로 flag를 받았다.

 

  • 정리
  • alert 안 띄우기 -> 이미지 태그 사

관련글 더보기