# 문제링크 : https://dreamhack.io/wargame/challenges/44
문제 설명
문제 파일 다운받고 사이트에 접속해주자.
Ping 버튼을 누르면 이렇게 ping을 보낼 수 있다. 8.8.8.8로 ping을 보내보자.
이렇게 ping 결과가 나온다. ping을 보낼 때 command injection 공격을 실행해야 하는 것 같다.
Command Injection은 웹 요청 메시지에 임의의 시스템 명령어를 삽입하고 전송하여 웹 서버에서 해당 명령어를 실행하도록 하는 공격이라고 한다. 소스코드를 확인해보자.
소스코드 중 ping 함수를 정의하는 부분에서 "ping -c 3 "{host}"' 부분이 눈에 띈다. 이를 이용해 cmd창에 접속하여 command injection 공격을 실행할 수 있을 것 같다.
흠... 메타 문자 중 ";"을 이용해 다중 명령을 전달하려고 했는데 안된다.
형식 확인을 위해서 ping 창 소스코드를 확인해봤다. 패턴이 지정되어 있는 걸 알 수 있다. 패턴 지정을 피하기 위해 프록시를 이용해 우회해서 입력값을 바꿔주자.
프록시를 이용해 패킷을 가로챈 다음 8.8.8.8":"ls로 바꿔서 다시 날려줬다.
그랬더니 이런식으로 전송돼서 파일 목록들이 보인다. 파일 중에 flag.py 파일이 있다. 이를 cat 명령어를 이용해 열어주자.
다시 한 번 패킷을 가로채서 이번엔 8.8.8.8";"cat" "flag.py로 바꿔서 날려줬다.
이렇게 flag.py의 내용이 보이면서 플래그도 함께 보인다.
flag값을 입력하면 문제 해결!
'문제풀이' 카테고리의 다른 글
[Dreamhack] pathtraversal 문제풀이 (0) | 2023.11.13 |
---|---|
[Dreamhack] Carve Party 문제풀이 (0) | 2023.10.11 |
[Dreamhack] file-download-1 문제풀이 (0) | 2023.10.09 |
[Dreamhack] devtools-sources 문제풀이 (0) | 2023.10.02 |
[Dreamhack] rev-basic-2 문제풀이 (0) | 2023.08.08 |