문제 정보
특정 Host에 ping 패킷을 보내는 서비스입니다.
Command Injection을 통해 플래그를 획득하세요. 플래그는 flag.py에 있습니다.
풀이 힌트
1. Linux 다중 명령
2. html pattern 속성
문제 풀이
![](https://blog.kakaocdn.net/dn/bZ7gIf/btri5H9dFJA/5In2mkfWmck7B2pA5gtxT0/img.png)
문제 페이지로 들어서 확인해보니, ping을 보내주는 기능이 있는 사이트로 예상된다.
기능도 Ping 페이지 밖에 없었다.
![](https://blog.kakaocdn.net/dn/tmrTH/btri4ZbqHRv/hGhhZlC7KajL64HVEKHLR0/img.png)
확인해보니, input에 ip 주소를 넣어주면 서버가 ping을 보내주는 것으로 보인다.
![](https://blog.kakaocdn.net/dn/bCFvr1/btriZq85BxF/zE4anEgbFZJ3CtbnpzIebK/img.png)
input에 8.8.8.8를 넣어서 Ping! 버튼을 클릭하니, 위와 같은 결과를 얻을 수 있었다.
이번 문제는 다중 명령어를 이용한 취약점을 물어보기 위한 문제로 보인다.
![](https://blog.kakaocdn.net/dn/cnG1Ic/btri5Sv4qEP/LIvOy3WSD9Br7WRRORDjXk/img.png)
확인을 위해 ;를 넣어서 다중 명령을 전달하려고 했지만, 형식이 안 맞다고 반려되었다.
![](https://blog.kakaocdn.net/dn/bhWMjM/btri0bKygA1/iaHYBnrLWxhKVAnYqshlQK/img.png)
코드를 확인해보니, pattern 속성을 이용하여 형식을 지정하고 있었다.
해당 속성을 제거하고 다시 한번 다중 명령을 서버에 전달하였다.
![](https://blog.kakaocdn.net/dn/w8Q0a/btri6nCHJ6a/AoKIrL9kXE2mjBn7sEEL31/img.png)
error가 발생되었다. 확인해보니, ping 기능은 ping -c 3 "input에 입력한 값"으로 되어있다.
![](https://blog.kakaocdn.net/dn/bdoCnt/btri4XSiVbz/t4pJIRmQV6YKRaWGQAsyu0/img.png)
그래서 나는 "" 때문에 발생되는 Error를 우회하기 위해 위와 같은 페이로드를 사용하였다.
![](https://blog.kakaocdn.net/dn/b6Hpvr/btriYWGMBTf/HpWCkIFA8yUtAK7cIkftXk/img.png)
Error 없이 잘 작동하는 것을 볼 수 있었다.
우리가 확인해야하는 flag.py도 해당 경로에 있다는 것을 확인했으니, cat 명령어를 이용하여 읽어보겠다.
![](https://blog.kakaocdn.net/dn/dQUzTR/btri6npaAKD/sad43pPGVZCNmQwYYjQWK1/img.png)
![](https://blog.kakaocdn.net/dn/6Z5uu/btri6nQfntS/xGfiFWIPSUZQVqcONDXV90/img.png)
flag 값을 얻을 수 있었다.
'Wargame > Dreamhack' 카테고리의 다른 글
[Dreamhack Web - Lv 1] web-misconf-1 (0) | 2021.10.28 |
---|---|
[OverTheWire System - Bandit] Level 11 >> Level 12 (0) | 2021.10.28 |
[Dreamhack Web - Lv 1] image-storage (0) | 2021.10.27 |
[OverTheWire System - Bandit] Level 3 >> Level 4 (0) | 2021.10.26 |
[OverTheWire System - Bandit] Level 2 >> Level 3 (0) | 2021.10.26 |
Comment