728x90
우선 문제 페이지에 접속하면 아래와 같은 모습을 볼 수 있었다.
각 카테고리 별로 우선 vuln(csrf) page가 아래와 같이 구성되어 있고,
flag 페이지는 아래와 같이 파라미터 값을 입력하도록 되어 있다.
마지막으로 로그인 페이지는 아래와 같이 구성되어 있음을 확인할 수 있었다.
소스코드를 확인해보니 아래 이미지와 같이 guest와 admin 계정이 각각 제시되어 있었고, 비밀번호까지 나와있는 게스트 계정에 먼저 로그인해보았다.
게스트 계정으로 로그인을 하니 아래와 같이 'Hello guest, you are not an admin'이 출력되고 있었다.
계속 소스코드를 확인해보자.
우선 아래 코드에서 xss 공격을 막기 위해 필터링을 하고 있기 때문에 script 태그는 사용하지 못하므로 img 태그를 사용할 수 있을 것 같다.
다음으로 플래그 페이지의 코드 부분을 살펴보면 POST를 수행할 때, sessionid를 admin이라고 해 두었기 때문에 guest 계정으로 플래그 창을 들어가도 admin 계정의 비밀번호를 변경할 수 있음을 확인할 수 있다.
이렇게 찾은 부분들을 모두 조합하여 아래와 같이 파라미터 값을 작성할 수 있다.
<img src="/change_password?pw=admin">
우선 플래그 페이지에서 파라미터 값을 넣어주고
admin 계정의 비밀번호를 변경한 값을 넣어주니
admin 계정으로 로그인이 성공하면서 아래와 같이 플래그 값을 얻을 수 있었다!
728x90
'CTF' 카테고리의 다른 글
[Dreamhack] command-injection-1 write-up (0) | 2023.11.22 |
---|---|
[Dreamhack] command-injection-chatgpt write-up (1) | 2023.11.21 |
[Dreamhack] csrf-1 write-up (0) | 2023.11.15 |
[Dreamhack] XSS Filtering Bypass write-up (0) | 2023.11.15 |
[Webhacking.kr] old-23 write-up (0) | 2023.11.14 |