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
[방어]
입력값에 대한 메타 문자의 유무 검사하거나 시스템 메타 문자를 해석하지 않고 그대로 사용하는 함수를 사용해야함.
'보안 > 웹해킹' 카테고리의 다른 글
[DreamHack] Stage8 - File Vulnerability (0) | 2023.03.24 |
---|---|
[DreamHack] Stage6-SQL Injection (0) | 2023.03.23 |
[DreamHack] Stage5-Cross Site Request Forgery (CSRF) (0) | 2023.03.23 |
[lord of SQLinjection] troll 문제풀이 (0) | 2021.08.04 |
[lord of SQLinjection] orge 문제풀이 (0) | 2021.08.04 |