zer0pts ctf 2022 GitFile Explorer write up
글 작성자: Universe7202
GitFile Explorer (web)
이번 문제는 `preg_match()` 함수를 우회하여 `file_get_contents()` 함수로 flag를 획득하는 문제이다.
34번째 줄에 `preg_match()` 함수 안에 정규 표현식을 보면, github|gitlab|gitbucket 문자열은 어디에나 존재하면 된다.
즉, `http://askldjfklasd.github.com` 이런 것이 가능하다. 또한, `m` 이라는 옵션이 붙었는데, 이에 대한 설명은 다음과 같다.
즉, 다음과 같이 개행을 포함하여 전송하게 되면 `m` 옵션으로 인해 http 라는 문자열이 2번째 줄에서 시작하여 `preg_match()` 함수의 정규 표현식을 우회할 수 있게 된다. 단, 아래 결과를 보면 `No such file or directory in ~~` 라는 경고 문구가 출력되는 것을 볼 수 있다.
/?service=asdf%0d%0ahttps%3A%2F%2Fraw.githubusercontent.com&owner=ptr-yudai&repo=ptrlib&branch=master&file=README.md
다음과 같이 php wrapper를 이용하여 flag를 획득할 수 있다.
/?service=php://filter/convert.base64-encode/resource=/%0d%0ahttp://github&owner=..&repo=..&branch=..&file=flag.txt
'🚩CTF' 카테고리의 다른 글
[WACon 2022] ppower write up (2) | 2022.06.28 |
---|---|
[WACon 2022] Kuncɛlan write up (0) | 2022.06.27 |
hayyim CTF 2022 writeup (0) | 2022.02.13 |
HTML Viewer writeup (0) | 2022.02.04 |
[UMass 2021 CTF] write up (0) | 2021.03.29 |
댓글
이 글 공유하기
다른 글
-
[WACon 2022] ppower write up
[WACon 2022] ppower write up
2022.06.28 -
[WACon 2022] Kuncɛlan write up
[WACon 2022] Kuncɛlan write up
2022.06.27 -
hayyim CTF 2022 writeup
hayyim CTF 2022 writeup
2022.02.13 -
HTML Viewer writeup
HTML Viewer writeup
2022.02.04