[CTF] BambooFox CTF 2021

ヽ (#`Д´) ノ(web)

レ(゚∀゚)ヘ=3 2023. 12. 21. 09:37
728x90

[CTF 사이트 닫힘]

페이지를 열면 간단한 php 페이지의 정보를 볼 수 있다. 3가지 조건이 나와있다.

1) 입력하는 값의 길이는 10보다 작아야 한다.
2) 입력하는 값에 a~z, 0~9의 값이 없어야 한다.
3) eval()을 실행하기 전에 print_r를 통해 print해줘야 한다.

1), 2) 번 조건을 우회하기 위해 문자열을 배열로 만들어준다. 그러면 print 대신 print_r로 출력이 돼서 배열은 eval()함수에서 검사를 할 수 있게 된다. 여기서 print_r()은 배열을 편하게 읽을 수 있게 정보를 출력해주는 함수이고, 디버깅 할 때 편리하다.

이렇게 배열을 통해 우회를 해주면 system()’을 사용할 수 있게 된다. 그러면 ‘ls’을 통해 모든 디렉토리를 볼 수 있다. 여기 안에 flag을 포함한 flag파일이 있을 것이다.

flag_de42537a7dd854f4ce27234a103d4362이 flag을 포함한 파일이라는 것을 구할 수 있고, GET파라미터에 system(‘cat’)을 통해 flag파일의 내용을 보는 코드를 추가하면 flag을 얻을 수 있다. 

/?(%23`Д´)[]=system('cat /flag_de42537a7dd854f4ce27234a103d4362'))?>을 입력해준다.

flag{!pee_echi_pee!} flag값을 얻었다.

'[CTF] BambooFox CTF 2021' 카테고리의 다른 글

Calc.exe Online(webhacking)  (0) 2023.12.21
SSRFrog (Webhacking)  (0) 2023.12.21