命令执行(RCE)
1.原理
在使用系统执行命令函数时,没有进行严格的过滤,导致攻击者能够执行一些危险命令。路由器中经常见到,ping命令测试连接,由于对参数没有进行限制,可以在ping命令后加一条命令实现注入
2.危害
获取系统权限和敏感文件
3.判断和可能出现位置
a.判断
利用延时函数和转md5函数
b.可能出现位置
- 1)ping命令处
- 2)利用命令执行函数处
4.基础利用
127.0.0.1&&cat /etc/passwd
5.bypass
- 1)过滤空格---空格可以用<、<>、%20(space)、%09(tab)、$IFS$9、${IFS}、$IFS代替
- 2)过滤斜杠---可以同时执行多个命令,先cd进去再cat
- 3)过滤命令---利用等价命令,比如过滤cat可以使用more,less等
- 4)无回显---使用延时注入和DNSlog
6.防御
尽量不要使用系统执行命令,如果使用做好严格过滤
7.详细分类
a.linux
linux中的连接命令
- %0a---换行符
- %0d---回车符
- ;---每个命令都会执行,不管前面执行成功还是失败,后面的命令都会继续很执行
- &&---前面的执行成功后,才会执行后面的命令。
- |和||---前面的命令执行失败后才会执行后面的命令,直到执行一条成功的命令
b.windows
c.php
php命令执行函数: 常见array_map(),preg_replace(),ob_start(),eval()