-
DreamHack 2단계 csrf-1DreamHack 2021. 8. 3. 16:48
DreamHack 2단계 csrf-1 문제를 풀어보겠다.
접속을 하면 네 페이지가 나오는데,
vuln 함수에서 script 문이 * 로 필터링 된다는 것을 볼 수 있다.
memo 함수는 flag 에 입력한 값이 성공시 출력되는 페이지이다.
왜냐하면, memo 함수에서 이미 hello 라는 문자열이 있기 때문에 쿠기 값이 존재한다고 생각할 수 있다.
notice flag 함수는 admin 계정 권한에 속한다는 것을 알 수 있다.
flag 함수는 스크리브 언어를 기입하여, 공격하는 페이지이다.
이렇게, 각각의 페이지를 확인할 수 있다.
read_url 함수를 보면 이 함수에서 쿠키가 생성되고, domain 이 127.0.0.1:8000 이다.
우리가 제공받은 주소와 포트도 다르기 때문에 쿠키 값에는 저장되어 있지 않다.
따라서 127.0.0.1:8000 에서 확인을 해야한다.
check_csrf 함수를 보면 입력한 URL 을 참조하는 것을 알 수 있다.
memo 에 flag 를 작성하는 기능인 것을 알 수 있다.
/admin/notice_flag 함수를 보면, 127.0.0.1 로 접속하지 않으면 Access Denied 이고, userid 가 admin 이 아니면 Access Denied 2 메시지가 출력된다는 것을 볼 수 있다.
그리고 memo 에 flag 값이 출력되는 것은 global 변수 memo_text 로 된다는 것을 알 수 있다.
flag 화면에서 입력란에,
<img src="/admin/notice_flag?userid=admin">
라고 입력하면 FLAG 값을 얻을 수 있다.
이렇게 FLAG 가 출력된다.
'DreamHack' 카테고리의 다른 글
DreamHack 2단계 php-1 (0) 2021.08.07 DreamHack 2단계 image-storage (0) 2021.08.06 DreamHack 1단계 basic_exploitation_003 (0) 2021.07.30 DreamHack 1단계 basic_exploitation_002 (0) 2021.07.15 DreamHack 1단계 basic_exploitation_001 (0) 2021.07.14