Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | |||||
| 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| 10 | 11 | 12 | 13 | 14 | 15 | 16 |
| 17 | 18 | 19 | 20 | 21 | 22 | 23 |
| 24 | 25 | 26 | 27 | 28 | 29 | 30 |
| 31 |
Tags
- 화이트해커
- 보안
- path traversal
- Dreamhack
- cookie
- cookie tampering
- php7.4
- KITRI
- 한국정보기술연구원
- 워게임
- 타입 변환 취약점
- WarGame
- 화이트햇스쿨
- Cross Site Script
- 보안교육
- cybersecurity
- 드림핵
- 웹해킹
- session hijacking
- type juggling
- php
- loose comparison
- webhacking
- WhiteHatSchool
- file download vulnerability
- dev-tools
- web-misconf-1
- WEB
- 웹
- 정보보안
Archives
- Today
- Total
xmi1e-vir.log
[Dreamhack] wargame 'command-injection-1' write-up 본문
🌱 Biginner
문제링크
특정 Host에 ping 패킷을 보내는 서비스입니다.
Command Injection을 통해 플래그를 획득하세요.
플래그는 flag.py에 있습니다.
📌문제 파악
주어진 웹사이트는 시간안에 입력한 host에게 ping을 3번 보내는 기능을 가지고 있다.

Command Injection 취약점 이란?
- 취약한 애플리케이션을 실행 중인 서버에서 임의의 운영체제 명령을 실행할 수 있는 취약점을 의미
- ping 명령을 활용한 Command Injection에서는
- 정상적인 작동을 위해 IP를 입력
- 이후 다중 명령을 사용할 수 있또록 해주는 특수문자인 ; 또는 &&를 입력하고 원하는 명령을 입력하여 실행되게 할 수 있음

📌풀이 방법
ping을 보내는 코드는 아래와 같이 되어있다.
원래는 호스트 이름에 공백이나 특수 문자가 들어가는 것을 방지하려고 큰 따옴표를 사용하지만 이게 오히려 공격에 활용할 수 있는 지점이 된다.
@APP.route('/ping', methods=['GET', 'POST'])
def ping():
if request.method == 'POST':
host = request.form.get('host')
cmd = f'ping -c 3 "{host}"'
try:
output = subprocess.check_output(['/bin/sh', '-c', cmd], timeout=5)
return render_template('ping_result.html', data=output.decode('utf-8'))
정상적으로 127.0.0.1와 같은 IP를 입력하면
→ ping -c 3 "127.0.0.1" 과 같은 명령이 실행된다.
그러나, IP를 입력하면서 임의로 "를 닫아준뒤 내가 실행하고자 하는 명령을 실행하면 쉘은 ping 정상 동작 후 명령을 새로 해석한다.
이 문제의 경우 127.0.0.1"; cat flag.py #를 input으로 입력하면
→ ping -c 3 "127.0.0.1"; cat flag.py # 명령이 실행되는 것이다.
- 세부적인 실행 흐름은 아래와 같다.
- "127.0.0.1" → ping 정상 동작
- "; 이후부터는 따옴표가 닫혀서 쉘이 명령어를 새로 해석
- cat flag.py 실행
- #를 통해 이후의 내용인 "등을 주석처리 → 기존 코드를 무시하므로 에러 없이 종료
입력 후 다음과 같은 플래그를 얻을 수 있다.

* 참고문헌
[Command Injection 취약점]
https://maker5587.tistory.com/61
https://ctf101.org/web-exploitation/command-injection/what-is-command-injection/
https://blog.plura.io/ko/threats/command-injection-overview/
'WARGAME > WEB' 카테고리의 다른 글
| [Dreamhack] wargame 'pathtraversal' write-up (0) | 2025.09.07 |
|---|---|
| [Dreamhack] wargame 'Carve Party' write-up (0) | 2025.09.07 |
| [Dreamhack] wargame 'file-download-1' write-up (0) | 2025.09.07 |
| [Dreamhack] wargame 'devtools-sources' write-up (0) | 2025.09.07 |
| [Dreamhack] wargame 'cookie' write-up (0) | 2025.09.07 |