TigerDemon
[6주차] Dreamhack csrf-2 본문
https://dreamhack.io/wargame/challenges/269
csrf-2
여러 기능과 입력받은 URL을 확인하는 봇이 구현된 서비스입니다. CSRF 취약점을 이용해 플래그를 획득하세요. 문제 수정 내역 2023.07.18 css, html 제공 및 read_url() 코드 일부가 변경되었습니다. Referen
dreamhack.io
위 링크에 들어가 서버를 생성하면 아래 사진과 같이 뜬다.


세션 ID를 가져와 접속자가 누구인지 확인하고 admin이 접속자면 flag를 출력한다.

사용자의 입력값을 변수 para에 담는다 이때 for문을 통해 frame , script , on(_라는 변수에 루프마다 담기게 된다) 이라는 문자가 있는지 검사하고 발견되면 * 로 변경해버리는 코드가 있다.

그냥 접속했을 시엔 flag.html을 보여주지만 POST로 param입력값을 입력하면
1. 랜덤한 세션 ID를 생성한다 2. admin의 세션 ID로 저장한다 3. check_csrf로 입력한 변수를 넘긴다
위 순서대로 실행한다. 여기서 알 수 있는 것은 CSRF공격을 하면 admin sessionID가 함께 요청에 담긴다.

말 그대로 패스워드를 pw파라미터에 담긴 값으로 변경한다. 이 명령을 한 사람은 sessionID를 기반으로 확인한다.
즉 admin sessionID를 담아 이 페이지에 pw인자를 보내면 admin의 패스워드를 변경해버린다.
아래 코드를 flag에 입력해본다. 공격이 성공적으로 수행됐다면 admin의 패스워드가 1234로 변경되었을 것이다.
exploit = <img src="/change_password?pw=1234" />

username에 admin을 입력하고 passwod에 1234를 입력해보았다.


'2023-SWLUG > CTF 문제 풀이' 카테고리의 다른 글
| [7주차] webhacking.kr 44 (0) | 2023.11.22 |
|---|---|
| [6주차] WEBHACKING.KR old - 23 (0) | 2023.11.15 |
| [6주차] Dreamhack csrf-1 (0) | 2023.11.15 |
| [6주차] Dreamhack XSS Filtering Bypass (0) | 2023.11.15 |
| [5주차] Dreamhack XSS-2 (0) | 2023.11.08 |