TigerDemon

[6주차] Dreamhack csrf-2 본문

2023-SWLUG/CTF 문제 풀이

[6주차] Dreamhack csrf-2

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

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