【文件上传/解析技巧拓展】————1、我的WafBypass之道(Upload篇)

Upload_Bypas,一款针对文件上传的Fuzz检测工具 Upload_Bypass 是一个强大的工具,旨在帮助渗透测试人员和 Bug Hunters 测试文件上传机制。它利用各种漏洞赏金技术来简化识别和利用漏洞的过程,确保对 Web 应用程序进行全面评估。简化文件上传机制中漏洞的识别和利用利用漏洞赏金技术最大限度地提高测试效果支持对 Web 应用程序进行全面评估提供直观且用户友好的界面增强安全评估并帮助保护关键系统。 阅读详情

0x00 前言

玩waf当然也要讲究循序渐进,姊妹篇就写文件上传好了,感觉也就SQLi和Xss的WafBypass最体现发散性思维的,而文件上传、免杀、权限提升这几点的Bypass更需要的是实战的经验。本文内容为沉淀下来的总结以及一些经典案例。想到哪写到哪,所以可能不是很全。创造姿势不易,且行且珍惜。(案例图不好上,毕竟是upload的Bypass,就直接上姿势)

阅读此文你会发现新老姿势都有,因为我是想系统的写一写,文件上无非就是结合各种特性或waf缺陷。辍写时想过一个问题,如何归拢哪些属于文件上传Bypass的范畴?打个比方:

上传正常.jpg的图片 #成功
上传正常.php #拦截
绕过.php文件的filename后进行上传 #成功
使用绕过了filename的姿势上传恶意.php #拦截

以上这么个逻辑通常来讲是waf检测到了正文的恶意内容。再继续写的话就属于免杀的范畴了,过于模糊并且跑题了,并不是真正意义上的文件上传Bypass,那是写不完的。

0x01 搞起

上传文件(歪脖骚)时waf会检查哪里?

  • 请求的url
  • Boundary边界
  • MIME类型
  • 文件扩展名
  • 文件内容

常见扩展名黑名单:

asp|asa|cer|cdx|aspx|ashx|ascx|asax
php|php2|php3|php4|php5|asis|htaccess
htm|html|shtml|pwml|phtml|phtm|js|jsp
vbs|asis|sh|reg|cgi|exe|dll|com|bat|pl|cfc|cfm|ini

个人写的“稍微”全一点,实际上waf的黑名单就不一定这么全了。

测试时的准备工作:

  • 什么语言?什么容器?什么系统?都什么版本?
  • 上传文件都可以上传什么格式的文件?还是允许上传任意类型?
  • 上传的文件会不会被重命名或者二次渲染?

0x02 容器特性

> 有些很老的特性其实也是最开始绕waf的基础,这里就一笔带过了。

Apache1.X 2.X解析漏洞:
Apache在以上版本中,解析文件名的方式是从后向前识别扩展名,直到遇见Apache可识别的扩展名为止。
Win2k3 + APACHE2.0.59 + PHP

IIS6.0两个解析缺陷:

  • 目录名包含.asp、.asa、.cer的话,则该目录下的所有文件都将按照asp解析。例如:

  • 文件名中如果包含.asp;、.asa;、.cer;则优先使用asp解析。例如:

有一点需要注意,如果程序会将上传的图片进行重命名的话就gg了。

Nginx解析漏洞:

  • Nginx 0.5.*
  • Nginx 0.6.*
  • Nginx 0.7 <= 0.7.65
  • Nginx 0.8 <= 0.8.37

以上Nginx容器的版本下,上传一个在waf白名单之内扩展名的文件shell.jpg,然后以shell.jpg.php进行请求。

  • Nginx 0.8.41 – 1.5.6:

以上Nginx容器的版本下,上传一个在waf白名单之内扩展名的文件shell.jpg,然后以shell.jpg%20.php进行请求。

IIS 7.0/7.5
Nginx < 0.8.3

以上的容器版本中默认php配置文件cgi.fix_pathinfo=1时,上传一个存在于白名单的扩展名文件shell.jpg,在请求时以shell.jpg/shell.php请求,会将shell.jpg以php来解析。

多个Content-Disposition:

在IIS的环境下,上传文件时如果存在多个Content-Disposition的话,IIS会取第一个Content-Disposition中的值作为接收参数,而如果waf只是取最后一个的话便会被绕过。

Win2k8 + IIS7.0 + PHP

请求正文格式问题:

Content-Disposition: form-data; name="file1"; filename="shell.asp"
Content-Type: application/octet-stream

正常的upload请求都是以上这样,然而这个格式也并非强制性的,在IIS6.0下如果我们换一种书写方式,把filename放在其他地方:

Win2k3 + IIS6.0 + ASP

结合.htaccess指定某些文件使用php来解析:
这个方法通常用于绕过waf黑名单的,配置该目录下所有文件都将其使用php来解析:

0x03 系统特性

Windows特殊字符:

当我们上传一个文件的filename为shell.php{%80-%99}时:

waf可能识别为.php{%80-%99},就会导致被绕过。
Win2k8 + IIS7.0 + PHP

exee扩展名:
上传.exe文件通常会被waf拦截,如果使用各种特性无用的话,那么可以把扩展名改为.exee再进行上传。

NTFS ADS特性:
ADS是NTFS磁盘格式的一个特性,用于NTFS交换数据流。在上传文件时,如果waf对请求正文的filename匹配不当的话可能会导致绕过。

Windows在创建文件时,在文件名末尾不管加多少点都会自动去除,那么上传时filename可以这么写shell.php......也可以这么写shell.php::$DATA.......。

Win2k8 + IIS7.0 + PHP

 

0x04 waf缺陷

匹配过于严谨:

  • 一个空格导致安全狗被绕过:
Content-Type: multipart/form-data; boundary=---------------------------4714631421141173021852555099

尝试在boundary后面加个空格或者其他可被正常处理的字符:

boundary =---------------------------4714631421141173021852555099

Win2k3 + IIS6.0 + ASP

  • 以上也能说明一个问题,安全狗在上传文件时匹配各个参数都十分严谨,不过IIS6.0以上也变的严谨了,再看看其他的地方:

每次文件上传时的Boundary边界都是一致的:

Content-Type: multipart/form-data; boundary=---------------------------4714631421141173021852555099
Content-Length: 253

-----------------------------4714631421141173021852555099
Content-Disposition: form-data; name="file1"; filename="shell.asp"
Content-Type: application/octet-stream

<%eval request("a")%>
-----------------------------4714631421141173021852555099--

但如果容器在处理的过程中并没有严格要求一致的话可能会导致一个问题,两段Boundary不一致使得waf认为这段数据是无意义的,可是容器并没有那么严谨:

Win2k3 + IIS6.0 + ASP

ASCII > 127的字符:

数据过长导致的绕过:

  • waf如果对Content-Disposition长度处理的不够好的话可能会导致绕过,例如:

Win2k3 + IIS6.0 + ASP

  • 基于文件名:

基于构造长文件名

如果web程序会将filename除了扩展名的那段重命名的话,那么还可以构造更多的点、符号等等。

  • 特殊的长文件名:

文件名使用非字母数字,比如中文等最大程度的拉长,不行的话再结合一下其他的特性进行测试:

shell.asp;王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王.jpg

0x05 End

在这里放上个人之前总结的30个上传绕过姿势:

1.filename在content-type下面
2. .asp{80-90}
3. NTFS ADS
4. .asp...
5. boundary不一致
6. iis6分号截断asp.asp;asp.jpg
7. apache解析漏洞php.php.ddd
8. boundary和content-disposition中间插入换行
9. hello.php:a.jpg然后hello.<<<
10. filename=php.php
11. filename="a.txt";filename="a.php"
12. name=\n"file";filename="a.php"
13. content-disposition:\n
14. .htaccess文件
15. a.jpg.\nphp
16. 去掉content-disposition的form-data字段
17. php<5.3 单双引号截断特性
18. 删掉content-disposition: form-data;
19. content-disposition\00:
20. {char}+content-disposition
21. head头的content-type: tab
22. head头的content-type: multipart/form-DATA
23. filename后缀改为大写
24. head头的Content-Type: multipart/form-data;\n
25. .asp空格
26. .asp0x00.jpg截断
27. 双boundary
28. file\nname="php.php"
29. head头content-type空格:
30. form-data字段与name字段交换位置

文件上传Bypass可写的点不多,现有的姿势也不能拿出来讲(笑)重点在于上传文件时遇到waf能够准确判断所拦截的点,目光不能只盯在waf,更多的时注意后端的情况。往往是需要结合哪些语言/容器/系统版本“可以怎样”、“不可以怎样”。

 

转自:https://xz.aliyun.com/t/337

DPABI安装教程 DPABI是是中科院心理研究所严超赣老师团队开发的一款磁共振脑影像数据分析工具包。基于SPM,在安装DPABI之前需要安装好SPM,才能正常使用。SPM的安装方法见文matlab2021a版本条件下安装spm_kidllll的博客-优快云博客 1、下载安装包 下载地址:DPABI: a toolbox for Data Processing & Analysis for Brain Imaging | The R-fMRI Network 2、将下载好的dpabi文件夹移动到matl.. 阅读详情

相关推荐

Jetson Orin NX 单目标跟踪算法实战

本文对比了NanoTrack和MixFormerV2两种目标跟踪算法在Jetson Orin NX边缘设备上的实际表现。通过天空小目标跟踪场景测试发现,NanoTrack虽然表征能力较弱,但具有目标身份一致性强、失败模式可控、计算负担小等优势,更适合作为边缘端默认算法。MixFormerV2则适用于高速运动等特定场景。实验数据显示NanoTrack在Orin NX上可达200FPS,远高于MixFormerV2的38-120FPS。建议先采用NanoTrack构建稳定系统,后续再评估复杂算法的适用性。

karmueo46的博客 625

一次文件上传Bypass安全狗学习笔记

上传文件时waf会检查哪里? 请求的url Boundary边界 MIME类型 文件扩展名 文件内容 常见扩展名黑名单: asp|asa|cer|cdx|aspx|ashx|ascx|asax php|php2|php3|php4|php5|asis|htaccess htm|html|shtml|pwml|phtml|phtm|js|jsp vbs|asis|sh|reg|cgi|exe|dll|com|bat|pl|cfc|cfm|ini 实验环境:mysql + apache+

m0_55754984的博客 535

从理论到实践:全面解析Cmk(设备能力指数)的应用与优化

本文全面解析了设备能力指数Cmk的核心概念、计算逻辑与关键应用场景。Cmk作为衡量设备本身固有加工能力的黄金标准,在设备验收、大修后验证及过程能力根因分析中至关重要。文章通过实战案例,详细阐述了执行Cmk测试的“五大固定”黄金法则、数据计算分析方法,并提供了Cmk不达标时的系统性排查与优化策略,帮助制造企业实现预防性质量管理。

jump7的博客 525

【DVWA】Web漏洞实战之File Upload

File Upload File Upload,即文件上传漏洞,一般的上传漏洞可能是未验证上传后缀 或者是验证上传后缀被bypass 或者是上传的文件验证了上传后缀但是文件名不重命名。 LOW 直接上传任意文件 MEDIUM 验证Content-Type,修改Content-Type为image/jpeg直接绕过 HIGH 验证了后缀名、文件...

275

电流互感器的使用分析

有关电流互感器使用的注意事项,回头再看,耳目一新。

qq_46757048的博客 2万+

【过检测】2026调试级去虚拟化虚拟机成品

EternalBlaze调试级虚拟机是由恒烈开发的定制化VMware环境,适用于逆向工程、病毒分析等专业场景。该虚拟机基于Windows 10 1909专业版,预装Python/JDK等开发环境和逆向工具包,支持快照回溯功能。特色包括:一键去虚拟化方案、双机调试支持、驱动开发环境等。适用场景涵盖CTF竞赛、软件调试、病毒行为分析等,但不支持DX12游戏和视频盗录。使用前需按步骤关闭安全中心、安装特定VMware版本并执行去虚拟化操作。虚拟机提供基础版和逆向调试增强版两种配置,均预装必要工具链。(149字)

Heng_lie的博客 2672

我的WafBypass之道(upload篇)

好文章,值得转载:https://xianzhi.aliyun.com/forum/read/458.html 0x00 前言 玩waf当然也要讲究循序渐进,姊妹篇就写文件上传好了,感觉也就SQLi和Xss的WafBypass最体现发散性思维的,而文件上传、免杀、权限提升这几点的Bypass更需要的是实战的经验。本文内容为沉淀下来的总结以及一些经典案例。想到哪写到哪,所

Master'Blog 2647

机器学习入门基础 | 基于python的高光谱图像特征挖掘:PCA + 形态学属性处理可视化实战

本文介绍了一种基于PCA和形态学操作的高光谱图像特征提取方法。通过主成分分析降低数据维度,再运用面积开闭操作增强空间结构特征,有效去除噪声并填补孔洞。实验采用WHU-HI-HanChuan数据集,提供完整的Python实现代码,包括数据加载、PCA降维、形态学处理及结果可视化等步骤。该方法能够显著改善图像质量,为后续分类和变化检测任务提供更好的特征输入。实验结果表明,不同阈值的形态学处理能呈现不同程度的空间结构增强效果,对区域生长、分割和聚类等应用具有重要价值。

lestatlu的博客 1046

NotchDrop终极指南:如何让MacBook刘海变身智能文件中转站?

你是否曾盯着MacBook屏幕顶部的刘海,心里暗想:"这个设计除了放摄像头,还能做什么?" 今天,我要告诉你一个颠覆认知的答案:**这个刘海可以变成你的私人文件管家!** 没错,NotchDrop这款开源神器,能将MacBook的刘海区域转化为动态的文件暂存区和AirDrop快速通道。想象一下,你只需轻轻一拖,文件就能"飞"到刘海区域,随时待命,随时分享。这不仅仅是软件创新,更是对硬件潜力的重新定

gitblog_00022的博客 560

基于Python的京东商品价格监控与降价提醒系统设计与实现

本文详细介绍了如何使用Python构建一个完整的京东商品价格监控与降价提醒系统。系统通过爬虫技术实时抓取京东商品价格信息,结合数据存储与分析,实现价格波动监控和智能降价提醒功能。文章涵盖了系统设计、技术选型、代码实现以及部署方案,为电子商务价格监控领域提供了一个实用的解决方案。关键词:Python爬虫、京东API、价格监控、降价提醒、自动化。

2201_76125261的博客 405

基于 ESP32-CAM 与 TinyML 的食堂餐盘自动识别与营养分析终端

【代码】基于 ESP32-CAM 与 TinyML 的食堂餐盘自动识别与营养分析终端。

weixin_42300449的博客 166

【WAF技巧拓展】————7、我的WafBypass之道(upload篇)

0x00 前言 玩waf当然也要讲究循序渐进,姊妹篇就写文件上传好了,感觉也就SQLi和Xss的WafBypass最体现发散性思维的,而文件上传、免杀、权限提升这几点的Bypass更需要的是实战的经验。本文内容为沉淀下来的总结以及一些经典案例。想到哪写到哪,所以可能不是很全。创造姿势不易,且行且珍惜。(案例图不好上,毕竟是upload的Bypass,就直接上姿势) 阅读此文你会发现新老姿势都有...

Fly_鹏程万里 425

ros_gz_bridge__镜像__readme

Run。

1113

[转载]我的WafBypass之道(upload篇)

现在位置:首页>文章>Web安全> 正文 我的WafBypass之道(upload篇) 2016 /11/30 15:20 4,901 沙发 0x00 前言 玩waf当然也要讲究循序渐进,姊妹篇就写文件上传好了,感觉也就SQLi和Xss的WafBypass最体现发散性思维的,而文件上传、免杀、权限提升这几点的Bypass更需要的是实战的经验。本...

weixin_30521161的博客 77

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

文件上传漏洞总结

文件上传校验姿势 客户端javascript校验(一般只校验后缀名) 服务端校验 文件头content-type字段校验(image/gif) 文件内容头校验(GIF89a) 后缀名黑名单校验 后缀名白名单校验 自定义正则校验 WAF设备校验(根据不同的WAF产品而定) 其他 文件上传绕过校验姿势 利用工具进行FUZZ 客户端绕过 服务端绕过 文件类型绕过 文件头绕过 文件名/后缀绕过 截断 windows特性

Vdieoo的博客 931

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

文件解析漏洞总结-Apache

Apache解析漏洞 多后缀名解析:xx.php.xxoo Apache认为一个文件可以有多个后缀名,例如:peak.txt.jpg.xx Apache的解析规则是从后(右)往前(左)依次判断后缀名,当Apache不认这个后缀名时,就继续往前判断后缀名,如果遇到认识的后缀名,就将这整个文件当做认识的这个后缀名来解析,如若,从右往左都没有认识的,apache就会把这整个文件直接交给浏览器自动处理,不...

1stPeak's Blog 2847

Apache解析漏洞

其2.4.0-2.4.29版本中存在一个解析漏洞,在解析PHP时,1.php\x0A将被按照PHP后缀进行解析,导致绕过一些服务器的安全策略。在Apache1.x/2.x中Apache 解析文件的规则是从右到左开始判断解析,如果后缀名为不可识别文件解析,就再往左判断。3、使用burpsuite抓包,在evil.php文件后面添加”空格“,再将0x20改为0x0a放包即可上传成功。2、只要一个文件含有.php后缀的文件即将被识别成PHP文件,利用这个制作一句话木马。4、用中国菜刀连接木马。

qq_68186313的博客 566

apache文件后缀名解析

apache对文件后缀名的识别是从后向前进行匹配的,以单个.作为分隔符。当遇到未知的文件后缀名时,会继续向前匹配,直到遇到可以识别的后缀名为止。 如: 根目录下有一个abc.php.xa.cd.gf文件,当通过浏览器请求这个文件时,因为第一个后缀名.gf是无法识别的,apache会继续处理.cd,同样无法识别,直到最后识别出.php,那么最后这个文件将被作为php文件解析并执行。

mgxcool的专栏 8755

Apache默认解析后缀

Apache Httpd支持一个文件拥有多个后缀,不同的后缀执行不同的命令,也就是说当我们上传的文件中只要后缀名含有php,该文件就可以被解析成php文件,利用Apache httpd这个特性,就可以绕过上传文件的白名单。该漏洞和apache版本和php版本无关,属于用户配置不当造成的解析漏洞。Apache对文件后缀名的识别是从后向前进行匹配的,以单个.作为分隔符。当遇到未知的文件后缀名时,会继续向前匹配,直到遇到可以识别的后缀名为止。apache配置文件,禁止.php.这样的文件执行,配置文件里面加入。

m0_49025459的博客 1835

文件上传漏洞

先要制作图片马,找一个正常的图片加上18题的data_shell.php,然后将图片马data_shell_normal.png上传,然后bp抓包爆破(要做的就是不断上传图片马,不断创造改名前的时间间隙),然后py脚本(错误提示failed可以include随便一个不存在的文件,就会有failed错误),py脚本要做的就是不断访问上传的图片马,只要有一次访问成功,就会生成data_shell.php里的内容data_post.php,然后蚁剑连接就行了。

hhhmjl_的博客 792

实验吧bypass the upload

题目链接: http://ctf5.shiyanbar.com/web/upload  打开提米链接上传一个php文件提示: 按照题目要求上传符合标准的图片提示要上传php文件,明显需要进行上传绕过 经过多次试验,发现是0x00截断绕过具体步骤如下: 创建一个jpg文件,添加文件,上传,bp拦截数据包 然后,,,,,嘿嘿嘿。。。。。。 在/uploads后面加上这个变成这样/upl...

Ramona的博客 553

WEB文件上传WAF绕过攻防

这部分内容主要是探讨 WEB 文件上传中有关 WAF(Web Application Firewall,Web 应用防火墙)绕过的问题以及相应的安全修复方法。WAF 是为了保护 Web 应用免受攻击而设置的安全防护机制,但如果存在绕过漏洞,攻击者就可以突破这层防护,成功上传恶意文件,从而对服务器和应用程序造成严重威胁。

m0_57836225的博客 415

securityoverridehacking challenge 解题思路汇总——Advanced

继续上一篇securityoverridehacking challenge 解题思路汇总的工作,这次把Advanced给弄完了。这当中主要涉及到了关于php的一些攻击方法,可以以此为基础做一个深入的了解。 3      Advanced 3.1     PHP Sucks 利用PHP中==的跨类型比较而产生的漏洞。最终目的是要$input=="0000". 这个好办,php中,任何数字型字

逆水行舟 1020

【WAF剖析】——文件上传之安全狗bypass

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

Demo不是emo的博客 8743
上一篇: 【文件包含技巧拓展】————5、文件包含漏洞(绕过姿势)
下一篇: 【文件上传/解析技巧拓展】————2、文件上传漏洞(绕过姿势)
FLy_鹏程万里
FLy_鹏程万里 优质创作者: 后端开发技术领域 优质创作者: 后端开发技术领域 领域专家: 操作系统技术领域 领域专家: 操作系统技术领域
博客等级 码龄9年 1万+粉丝 1364原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值