6주차_Webhacking 과제3 : dreamhack [csrf-1]

2023. 11. 12. 01:32SWLUG/web hacking

csrf-1 | 워게임 | Dreamhack

 

csrf-1

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

dreamhack.io

 

📌 내풀이

 

 

 

CSRF란?

CSRF(Cross-Site Request Forgery)는 악성 웹 사이트 공격 유형이다.
이 공격 유형은 웹 사이트가 신뢰하는 사용자로부터 권한 없는 요청을 전송한다.

 

CSRF 공격에 대해 지난 시간에 배웠는데 위 공격은 공격자가 서버를 통해서 이용자가 모르는 사이에 어떠한 행동을 하도록 유도하는 공격이라고 이해했다.

 

 

[ 추가 학습 자료 ]

 

CSRF(Cross-Site Request Forgery) 공격과 방어 - Junhyunny’s Devlogs

 

CSRF(Cross-Site Request Forgery) 공격과 방어

<br /><br />

junhyunny.github.io

 

이제 문제를 풀어보겠다.

 

1이 뜨는게 아니고, <*> alert(1)이라고 뜬다. 

다른 것들도 시도를 해서 어떤 규칙으로 뜨는지 확인해봐야겠다.

 

 

 

접근금지라고 되어있다.

 

 

일단 문제를 풀기에 앞서서 문제를 전체적으로 한번 훑어봤다.

 

 

*로 대체된다고 적혀있는데 그래서 <*> 이렇게 떴던 것 같고, frame, script, on을 *를 대체하는 필터링 하고 있다.

 

 

파일을 통해서 푸는데 도움이 될만한 내용들을 이것저것 살펴봤다.

 

notice flag 페이지에서는 사용자의 ip 주소가 127.0.0.1이면 Access Denied 문자열을 출력하고

userid 파라미터 값이 admin이 아니면 Your not admin 문자열을 출력하도록하고있다.

ip 주소가 127.0.0.1이고, userid가 admin이면 memo에 flag를 작성한다.

 

*로 대체되지 않는 것을 사용해야하니까 이미지테그를 이용해야할 것 같기는 한대 그이후는 정확히 어떤식으로

진행해야할지 고민이 들었다.

 

그래서 조금 찾아봤다.

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

 

이미지 태그를 이용해서 , get형식으로 userid 가 admin memo에 flag를 띄우도록 위와같이 작성하는 것 같다.

 

 

 

 

 

 

풀이 끝

 

 

[ 참고 학습 자료 ]

 

[dreamhack] csrf-1 문제풀이 (tistory.com)

 

[dreamhack] csrf-1 문제풀이

[WEB] csrf-1 문제풀이 CSRF(Cross-site request forgery) 취약점은 웹사이트 취약점 공격방법중 하나로, 사용자가 자신의 의지와는 상관없이 공격자가 의도한 수정, 삭제, 등록 행위 등 특정 웹사이트에 요

mokpo.tistory.com