命令执行漏洞
- 命令执行漏洞原理
应用程序由于业务需要,需要调用系统命令(shell命令、CMD命令),但在将用户输入拼接进命令字符串时,未进行严格的过滤和转义,导致攻击者能够注入并执行任意系统命令。
PHP:system()、exec()、passthru()、shell_exec、反引号`
python:os.system()、os.popen()、subprocess.call()

Java:Runtime.getRuntime().exec()

Node.js:child_process.exec(),child_process.spawn()

- 命令执行漏洞危害
1、服务器完全沦陷
2、敏感信息泄露
读取系统文件:
读取应用源码和配置文件:
列举目录结构:ls -la /,dir C:
3、写入webshell,进一步控制
直接写如一个web后门文件:

4、内网横向渗透
以当前服务器为跳板,扫描和攻击内网中的其他主机:nmap -sP 192.168.1.0/24(-sP 主机发现)。
攻击内网数据库、缓存等未暴露在公网的服务器
5、破坏系统完整性
删除文件或清空服务器:rm -rf / ,del C:*.* /f /s /p
停止关键服务: service apache2 top,systemctl stop nginx
6、发起外部网络攻击或挖矿
利用服务器资源进行DDos攻击:./tfn -f hostlist -c 10 -i "target_ip"
下载并运行挖矿木马,消耗服务器资源。 - 命令执行漏洞修复和防御
1、避免命令拼接
2、最小权限原则:
3、对所有用户输入进行严格的白名单验证,
4、转义shell元字符
5、使用参数化接口
6、部署web应用防火墙


浙公网安备 33010602011771号