728x90
우선, 문제는 아래와 같은 페이지로 되어 있었다. 페이지의 소스코드를 확인해보자.
소스코드는 아래와 같다.
소스코드에서 핵심적인 부분을 살펴보면 POST방식으로 id 값을 받으며, id의 길이는 5라는 것을 알 수 있다. 또한, system() 부분이 실질적인 소스 실행부이기에 이 부분에 맞게 id를 전송해주어야 한다.
따라서 system() 함수 안의 파라미터 부분을 공략하는 것이 이 문제의 핵심이다.
system("echo 'hello! {$id}'");에서 ls를 실행하기 위해 텍스트박스에 ';'ls를 입력하여 전송할 수 있다.
';'ls 를 입력하면 flag로 시작하는 .php를 볼 수 있었고, 이를 주소창에 입력해보자.
입력해보니 플래그 값을 얻을 수 있었다!
문제 해결!
728x90
'CTF' 카테고리의 다른 글
[CTFLearn] Basic Injection (0) | 2024.05.01 |
---|---|
[Dreamhack] Command Injection Advanced write-up (0) | 2023.11.22 |
[Dreamhack] command-injection-1 write-up (0) | 2023.11.22 |
[Dreamhack] command-injection-chatgpt write-up (1) | 2023.11.21 |
[Dreamhack] csrf-2 write-up (0) | 2023.11.15 |