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 |