TigerDemon

[6주차] Dreamhack csrf-1 본문

2023-SWLUG/CTF 문제 풀이

[6주차] Dreamhack csrf-1

호랑2D 2023. 11. 15. 13:15

https://dreamhack.io/wargame/challenges/26

 

csrf-1

여러 기능과 입력받은 URL을 확인하는 봇이 구현된 서비스입니다. CSRF 취약점을 이용해 플래그를 획득하세요. 문제 수정 내역 2023.07.18 css, html 제공 및 read_url() 코드 일부가 변경되었습니다. Referen

dreamhack.io

위 링크에 들어가 서버를 생성하면 이렇게 뜬다.

 

 

read_url 함수에서 cookie에 "domain" : "127.0.0.1" 이라는 쿠키값이 설정되는 것을 볼 수 있다.

 

이 페이지를 주목해야한다. 접속지 주소가 127.0.0.1 (루프백. 즉, 실행 서버와 같은 위치라는 뜻)가 아니면 Access Denied라는 문구를 띄워버린다. userid라는 파라미터가 admin이 아니라도 거부된다. 모든 조건을 만족하면 FLAG를 memo_txt에 덧붙인다. 

 

1. /flag에서 실행되는 명령은 .admin/notice_flag 라는 페이지 접근 권한이 있다고 볼 수 있다.

2. /flag에서 실행시킬 명령에 userid=admin 이라는 파라미터를 함께 넘겨야 한다. 

물론 /admin/notice_flag를 볼 수 없다. 하지만 /admin/notice_flag 페이지에 접속만 하면 memo_txt 변수에 flag값이 더해진다. 그리고 memo_txt는 전역 변수한번 덧붙이면 유일하며 불변하고 /memo 엔드 포인트에서 memo_txt를 볼 수 있다.

 

위 1번과 2번 조건을 기반으로 아래와 같은 명령을 flag 페이지에 입력하면 된다.

<img src="/admin/notice_flag?userid=admin" />

성공

'2023-SWLUG > CTF 문제 풀이' 카테고리의 다른 글

[6주차] WEBHACKING.KR old - 23  (0) 2023.11.15
[6주차] Dreamhack csrf-2  (0) 2023.11.15
[6주차] Dreamhack XSS Filtering Bypass  (0) 2023.11.15
[5주차] Dreamhack XSS-2  (0) 2023.11.08
[5주차] XSS-Game level-5  (0) 2023.11.08