[Dreamhack Web - Lv 1] command-injection-1

문제 정보

특정 Host에 ping 패킷을 보내는 서비스입니다.
Command Injection을 통해 플래그를 획득하세요. 플래그는 flag.py에 있습니다.

풀이 힌트

1. Linux 다중 명령

2. html pattern 속성

문제 풀이

더보기

문제 페이지로 들어서 확인해보니, ping을 보내주는 기능이 있는 사이트로 예상된다.
기능도 Ping 페이지 밖에 없었다.

 

확인해보니, input에 ip 주소를 넣어주면 서버가 ping을 보내주는 것으로 보인다.

 

input에 8.8.8.8를 넣어서 Ping! 버튼을 클릭하니, 위와 같은 결과를 얻을 수 있었다.

 

이번 문제는 다중 명령어를 이용한 취약점을 물어보기 위한 문제로 보인다.

 

확인을 위해 ;를 넣어서 다중 명령을 전달하려고 했지만, 형식이 안 맞다고 반려되었다.

 

코드를 확인해보니, pattern 속성을 이용하여 형식을 지정하고 있었다.
해당 속성을 제거하고 다시 한번 다중 명령을 서버에 전달하였다.

 

error가 발생되었다. 확인해보니, ping 기능은 ping -c 3 "input에 입력한 값"으로 되어있다.

 

그래서 나는 "" 때문에 발생되는 Error를 우회하기 위해 위와 같은 페이로드를 사용하였다.

 

Error 없이 잘 작동하는 것을 볼 수 있었다.
우리가 확인해야하는 flag.py도 해당 경로에 있다는 것을 확인했으니, cat 명령어를 이용하여 읽어보겠다.

 

flag 값을 얻을 수 있었다.