보안/웹해킹
[DreamHack] Stage7-Command Injection
jiiihye
2023. 3. 24. 22:03
Command Injection
이용자의 입력을 시스템 명령어로 실행하게 하는 취약점.
→ 명령어를 실행하는 함수에 이용자가 임의의 인자를 전달할 수 있을 때 발생함.
ex) url쿼리를 통해 전달되는 ip값을 ping 명령어의 인자들 전달
@app.route('/ping')
def ping():
ip = request.args.get('ip')
return os.system(f'ping -c 3 {ip}')
$ ping -c 3 1.1.1.1; id
$ ping -c 3 1.1.1.1 && id
$ ping -c 3 1.1.1.1 | id
[방어]
입력값에 대한 메타 문자의 유무 검사하거나 시스템 메타 문자를 해석하지 않고 그대로 사용하는 함수를 사용해야함.