Loading [MathJax]/jax/output/CommonHTML/fonts/TeX/AMS-Regular.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >文件上传

文件上传

作者头像
kam1
发布于 2022-03-08 05:48:33
发布于 2022-03-08 05:48:33
13.7K00
代码可运行
举报
运行总次数:0
代码可运行

文件上传

上传文件的流程: 网页上传 -> 目标服务器的缓存目录 -> 移动到代码规定的目录 -> 重命名(开发) 移动上传文件函数: move_uploaded_file()

1.前端验证绕过: 可以通过burp抓包,删除js验证代码,即可绕过。

2.content-type方式绕过: 通过burp抓包,修改content-type类型为img/jpeg格式

3.黑名单绕过: 具体看黑名单内容,可以用大小写绕过、双写绕过、文件后缀点绕过 如何判断白名单和黑名单: .aaaaaaaaa 如果可以上传就是黑名单,如果不可以上传就是白名单。

  1. .htaccess绕过 上传一个img(实际是php)再上传含有将img文件当做php文件处理的代码的.htaccess文件,即可将img解析为php

5.后缀大小写绕过: 将php改为phP、PhP、pHP、PHp等都可以绕过

6.文件后缀空: 通过burp抓包,在文件名后缀加上一个空格,因windows会自动消除空格,但在后台检测有空格和没空格完全不一样,所以达成绕过

7.文件后缀点绕过: 与文件后缀空同理,用burp抓包,在文件名后缀加上一个点。

DATA(Windows文件流绕过): 利用NTFS文件流,windwos会将含有::DATA,可以达成绕过

9.构造文件后缀绕过: 当后缀.和空都不能用时,可以尝试一下 1.php. . 来绕过 消除文件后面的点和空,windwos自动消除点,达到绕过

10.双写文件后缀绕过 黑名单机制+文件后缀+windwos文件流被写入检测,可以通过pphphp来绕过,检测清除原本有的php,pphphp变成了php.达成绕过

  1. %00截断: url编码实际上本质是十六进制,这里是get传参,所以直接在url栏中写%00,00在计算机中相当于结束标识、计算机识别到十六进制00的时候会自动停止。

12.00截断: get会对网站url传参进行16进制解码,而post不会,所以在传参之后,直接用burp修改16进制

13.图片马: 对图片的内容进行检测, 并不是单单检测文件后缀名 图片马就是将一句话木马和图片合并在一起 为了绕过检测末尾的图片马,可以使用 图片 + 木马 + 图片 还可以图片+木马+zip

14.getimagesize 利用getimagesize()函数判断图片大小、格式、高度、宽度等、其实和图片马没有什么太大区别。

15.php_exif模块图片类型绕过 利用php_exif模块检测图片类型,和图片马没什么区别

16.二次渲染绕过: 会对图片进行二次渲染,修复代码。 可以写在gif图片头部(第三行开始写)

17.条件竞争绕过: file_put_contents() 把一个字符串写入文件 利用有这个函数的文件可以生成一个新的文件。 例如:file_put_contents(‘2.php’,‘’) 生成一个2.php文件内容是一句话木马。 因为这里是先上传再检测,在上传之后,检测删除之前,利用file_put_contents()及时生成一个2.php文件就可以了。 18. 条件竞争绕过(2): 和17一样,需要换成图片马。

19.move_uploaded_file()文件移动截断: 和00截断差不多.

20.IIS6.0解析漏洞(一) 解析漏洞: 中间件是根据后缀来区分交给谁来处理。 IIS6.0解析漏洞: IIS是中间件 asp一句话木马: <%eval request(“alva”)%> iis6.0中 默认配置 .asa .cer .cdx 都会当做asp进行处理 上传一个图片马,使用burp抓包进行修改后缀为asa即可。

21.IIS6.0解析漏洞(二) 使用分号,截断 IIS6.0 -> 1.asp;1.jpg -> 可以理解为00截断的变形。 上传一个图片马,把文件名改为 a.asp;1.jpg上传 检测会直接检测到后缀,但在中间件来说,认为a.asp就结束了,所以直接当成asp来解析。

22.IIS6.0文件解析漏洞(三) 将jpg文件放入名为a.asp目录中,iis会将a.asp文件夹中所有文件当做asp解析。 只在iis6.0中有 5.1 和7.5 都没有。 asp站点 iis6.0版本 一般来说aspx的站点会兼容asp

23.PHP-CGI解析漏洞 php和web容器交互有两种方法。 php与nginx交互的时候,php会在本地开一个9000的端口反代,php与nginx交互是通过9000端口 nginx默认以CGI方式支持php解析。 CGI:通用网关接口 在图片地址后面加上/.php即可。

靶场1-前端验证

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
第一关是前端验证绕过,可以利用burp suite抓返回包,将前端验证的js代码删除达到绕过

成功上传文件,现在打开图片地址测试一下是否成功 可以看到成功了

靶场2-Content-Type验证

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
第二关是用Content-Type绕过打开源码,发现这个是后端验证的,会验证上传的文件类型是什么,这里验证的是否为图片,所以直接上传php然后修改content-type为image/jpeg即可成功上传

靶场3-黑名单机制

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
黑名单机制,禁止上传asp、aspx、jsp这时候需要知道:在php中,默认状态下php3 php4 php5 phtml都会被解析为php,所以可以尝试以上方法上传文件。

靶场4-.htaccess文件绕过

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
查看源码得知,php3 php4 php5、大小写方法等全部被设置规则了。.htaccess文件,是一个分布式配置文件,针对于当前目录改变配置的方法,在特定的目录中放一个包含一个或多个指令的文件。.htaccess可以做文件夹密码保护、扩展名伪静态化、禁止特定ip的用户等,此文件规则高于Apache的规则例如:AddType application/x-httpd-php .jpg   这个指令表示 jpg文件当做php文件来执行首先上传一个jpg文件,再将写入AddType application/x-httpd-php .jpg的htaccess文件上传上去

此时在看看是否生效。

靶场5-后缀大小写绕过

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
查看源码发现这里大小写规则并没有写全

直接将木马文件后缀改为PhP

成功绕过

靶场6-文件后缀(空)绕过

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
查看源码,发现只是将文件名换为小写和删除末尾的点,并没有去空格直接上传php文件,使用burp抓包修改

靶场7-文件后缀(点)绕过

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
查看靶场源码,这里只把文件转为小写和去空,没有过滤点,在windows中,后缀.会自动被去掉,所以可以通过在后缀加个点达成绕过

靶场8-::$DATA Windows文件流绕过

源码中,大小写、首尾去空、删除点都被写入规则 我先试了试上传一个php 然后在burp中修改为 php. . 发现这样也能上传,并且生效

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
但毕竟要跟题目对应,这里要求使用 Windows文件流绕过,咱就应题而答Windows文件流绕过,利用ntfs交换数据流(ADS),ADSNTFS磁盘格式的一个特性,在NTFS文件系统下,每个文件可以存在多个数据流,通俗点说就是将某个文件“寄宿”在另一个文件上,而在资源管理器中只能看到宿主文件,看不到寄宿文件。

这里保存的时候其实默认 3.txt:$DATA 因为系统默认,所以不会显示

可以看到确实能够生效,对于后端检测来说,3.txt和3.txt:DATA

在访问的时候,直接访问alva.php 因为保存在windows系统上之后::$DATA这串字符就不存在了,实际上保存的是alva.php

靶场9-构造文件后缀绕过

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
通过查看源码,发现文件末尾点和首尾空格、大小写、windows文件流都被写入规则,但这里只删除文件末尾的一个点,我们用 . .的方式还是可以绕过的。

靶场10-双写文件后缀绕过

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
这个双写文件后缀绕过,看着就很熟悉。没错xss也有这样的绕过方法  <scscriptript>alert(1)</scscriptript>
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
既然这里是替换,那就让他替换呗,我多写一次不就行了嘛

.

靶场11-%00截断绕过

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
通过查看源码发现,这里将格式限制为jpg等图片格式,但这里进行了移动文件重命名进行保存,可以使用%00截断,00在计算机来说可以说是结束标识。这里会先检测是否是jpg,然后再移动文件位置,进行重命名,在移动的时候可以通过修改路径,在后面添加00截断后面的。相当于将文件重命名的时候,重命名为alva.php    这里经过测试,不用删除重命名之后的时间文件名也可以生效

靶场12-00截断绕过

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
这里也是00截断,其实跟靶场11的一样,get会去对url栏中的数据进行16进制解码,实际上url编码本质就是16进制,这里用的是post传参,不会对数据进行16进制解码,所以直接用burp抓包修改它的16进制

上传成功,查看是否生效

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
11,删除与不删除重命名之后的日期都可以生效

靶场13-图片马绕过

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
这个靶场这里会对图片的内容进行检测,而并不是单单检测文件后缀名,这时候就可以用图片马来绕过,将真实的图片与一句话木马合并在一起,这样既可以用图片方式打开也可以用php方式打开。有时候有些检测会检测末尾,这种情况可以使用 图片+木马+图片,将木马放在中间。在cmd中将php和图片合并 命令如下: copy 1.jpg/b + 2.php 3.jpg实际上是将两者转换为二进制,然后进行粘合

合并成功,现在测试测试上传是否成功

靶场14-getimagesize图片类型绕过

这一关使用了一个getimagesize()函数,来返回图片内容,比如高度宽度等 其实和靶场13差不多。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
这里我上传的是一个gif图片马

靶场15-php_exif模块图片类型绕过

这里用exif模块的imagetype判断图片类型是否为gif、jpg、png格式 直接上传上一关的gif图片马,上传成功

靶场16-二次渲染绕过

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
二次渲染:会对图片进行二次修改,上传之后会被处理,这时候用普通的图片马就会被直接处理掉,这里可以将一句话木马写在gif图片的头部。

打开发现图片有点变化,直接上传试试

成功绕过

靶场17-条件竞争

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
条件竞争这里,源码是先上传之后再检测,这时候木马会被删除,但是可以使用file_put_contents()函数生成一个新的木马文件,检测只会检测上传的文件,不会检测这个文件。语法:    <?php file_put_contents('2.php','<?php @eval($_REQUEST[8])?>');?>直接上传一个alva.php内容是上面的内容,让他生成一个一句话木马文件2.php,只要上传速度够快,电脑删除的速度就跟不上我。先随便上传一个文件得到路径,然后利用burp循环8000次上传,和8000次访问。

得到路径 抓包开跑,跑线上环境,很明显,我脸被打烂了,跑不过来 可恶!竟然真的跑不过来。 老老实实本地搭建吧。。

上传的文件内容。 开始本地抓包跑…… 开始源码错误,后来修改测试了一下上传的文件的源码直接放入文件夹去访问,是可以成功生成2.php的,循环很多次后还是没跑出来,我直接放弃了,希望辅导员见谅啊啊啊啊啊,末尾附上我的上传文件和生成的文件。确实是没问题的,线程30的50都没能跑出来

靶场18-条件竞争(2)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
和条件竞争1差不多,这里需要上传图片马,由于17我死都没跑出来这里也没能复现了。

靶场19-move_uploaded_file()截断

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
这里其实和00截断一样,这里重命名了上传的文件,直接抓包

靶场20-IIS6.0解析漏洞(一)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
IIS是一种web中间件,6.0是iis的版本号。解析漏洞的原理:中间件是根据文件的后缀名来决定由什么进行处理的。这里上传一个图片格式的文件,然后使用burp抓包修改后缀为`.asa、.cer、.cdx`,因为这里使用的是白名单机制,asp并没有在白名单中。而iis6.0中默认配置`.asa .cer .cdx`会当做asp进行处理

将一句话木马文件和图片进行合并。

图片显示正常且十六进制中存在一句话木马。 burp开启抓包,上传文件,修改后缀

文件上传成功。

靶场21-IIS6.0解析漏洞(二)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
通过查看页面源码,发现这里白名单中并不存在.asa .cer .cdx,并且还会判断图片大小要小于200KB这时候第一种方法就不能使用了这里有另外一种方法,类似于00截断,就像写php一样,用;号当做结束标识,这时候可以将文件名改为alva.asp;1.jpg,在iis解析的时候,解析到asp后识别到有个分号结束,就自动将asp进行处理

上传成功,使用菜刀找到flag进行提交

靶场22-IIS6.0解析漏洞(三)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
查看源码理解了一下,发现这里好像是固定jpg后缀才行,要求上传jpg那我就上传jpg嘛。
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
诶,发现这里竟然直接上传成功并且能够连上菜刀,还能找到flag
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
其实这里也是利用了iis6.0的解析漏洞,这个漏洞在其他一些版本并不存在,将目录名命名为a.asp,那么这个a.asp文件夹里面的所有文件都会以asp的方式来解析。

靶场23-PHP-CGI解析漏洞

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
在nginx中,默认以CGI方式处理php。 在IIS7.0IIS7.5、Lighttpd等也经常会出现这样的漏洞。只要在图片地址后面加上一个/.php,就会直接当做php进行执行,绕过解析。上传一个含有php一句话木马的文件即可。
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-07-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
文件上传漏洞
文件上传漏洞是指用户上传了一个可执行的脚本文件,并通过此脚本文件获得了执行服务器端命令的能力。这种漏洞是getShell最快最直接的方法之一。
LuckySec
2022/11/02
1.9K0
文件上传漏洞
超详细文件上传漏洞总结分析
本公众号提供的工具、教程、学习路线、精品文章均为原创或互联网收集,旨在提高网络安全技术水平为目的,只做技术研究,谨遵守国家相关法律法规,请勿用于违法用途,如果您对文章内容有疑问,可以尝试加入交流群讨论或留言私信,如有侵权请联系小编处理。
网络安全自修室
2022/01/24
13.3K0
超详细文件上传漏洞总结分析
深度解析:文件上传漏洞的绕过策略
前端绕过主要依赖于修改或绕过客户端的JavaScript验证。JavaScript的验证通常较为简单,容易被绕过。
红队蓝军
2024/07/26
1.4K0
深度解析:文件上传漏洞的绕过策略
Getshell | 文件上传绕过整理
WAF绕过 安全狗绕过 1.绕过思路:对文件的内容,数据。数据包进行处理。 关键点在这里Content-Disposition: form-data; name="file"; filename="ian.php" 将form-data; 修改为~form-data; 2.通过替换大小写来进行绕过 Content-Disposition: form-data; name="file"; filename="yjh.php" Content-Type: application/octet
HACK学习
2019/11/14
3.3K0
经验分享 | 文件上传个人bypass总结
这篇文章也是自己在实战中所遇见的一些总结,各位大师傅估计都知道这些最基础的问题,还是写给小白们的一点学习经验吧。
F12sec
2022/09/29
2.3K0
经验分享 |  文件上传个人bypass总结
文件上传漏洞技术总结
该文总结了文件上传技术相关的漏洞和绕过方法,包括语言可解析的后缀(如phtml、pht)、常见的MIME类型、Windows特性(如大小写、ADS流、特殊字符)、0x00截断技巧(需满足PHP版本和magic_quotes_gpc状态)、POST型0x00截断、文件头检查(通过合成图片马绕过)、二次渲染(利用未修改部分插入恶意代码)以及各种服务器的解析漏洞(Apache的.htaccess、解析漏洞,IIS的目录解析、文件解析、默认解析和IIS 7.x/Nginx的畸形解析)。此外,还提到了Java的空字节截断问题。
黑战士
2024/04/18
4140
实战 | 文件上传漏洞之最全代码检测绕过总结
文件上传漏洞是指攻击者上传了一个可执行的脚本文件,并通过此脚本文件获得了执行服务端命令的能力。该漏洞在业务应用系统中出现概率较高,究其原因是业务场景中上传附件、头像等功能非常常见,若在系统设计中忽略了相关的安全检查,则容易导致文件上传漏洞。
HACK学习
2022/02/17
15.2K1
实战 | 文件上传漏洞之最全代码检测绕过总结
文件上传漏洞超级大汇总-第一篇
先上图,由于太大复制麻烦我分两次贡献出来吧。废话不多说了,直接上正文 1、IIS解析漏洞 1、目录解析(IIS6.0):建立*.asa 、*.asp格式的文件夹时,其目录下的文件都被当做IIS当做 A
用户1467662
2018/03/30
2.4K0
渗透基础流程思路丶技巧丶与总结
1.探测网站脚本 cms识别 站长工具SEO综合查询获取服务器ip 搭建平台 同服网站 whois nmap探测开放端口 御剑大字典扫目录 扫网站备份文件 北极熊扫描 谷歌后台 子域名挖掘
测试小兵
2019/11/20
5460
渗透基础流程思路丶技巧丶与总结
复习 - 文件上传
当文件上传点未对上传的文件进行严格的验证和过滤时,就容易造成任意文件上传,包括上传动态文件,如asp/php/jsp等。如果上传的目录没有限制执行权限,导致上传的动态文件可以正常执行并可以访问,即存在上传漏洞的必要条件是:
Naraku
2021/07/28
1.4K0
文件上传漏洞的一些总结
0x00 前言 在跟p猫的py交易后,写下了这篇文章,根据之前写文章后表哥给予的一些改进建议,尽量在这篇文章中写得更加详细。因为本人技术水平有限菜的要死,所以可能很多方面写不到位,希望可以帮助一些入门的新手进一步提升,也希望更多的表哥可以给予一些补充让本人学到更骚的套路,话不多说,这次文章主要讲解任意文件上传漏洞。 0x01 漏洞原理 程序员在开发任意文件上传功能时,并未考虑文件格式后缀的合法性校验或者是只考虑在前端通过js进行后缀检验。这时攻击者可以上传一个与网站脚本语言相对应的恶意代码动态脚本,例如
ChaMd5安全团队
2018/03/29
3.2K0
文件上传漏洞的一些总结
简单粗暴的文件上传漏洞
文件上传漏洞可以说是日常渗透测试用得最多的一个漏洞,因为用它获得服务器权限最快最直接。但是想真正把这个漏洞利用好却不那么容易,其中有很多技巧,也有很多需要掌握的知识。俗话说,知己知彼方能百战不殆,因此想要研究怎么防护漏洞,就要了解怎么去利用。
信安之路
2018/08/08
3.9K0
简单粗暴的文件上传漏洞
【文件上传与解析】文件上传与解析漏洞总结v1.0
大多数网站都有文件上传的接口,如果没有对上传的文件类型做严格的限制,会导致攻击者可以上传恶意文件。(例如Webshell)
一名白帽的成长史
2019/10/08
1.7K0
【文件上传与解析】文件上传与解析漏洞总结v1.0
Web渗透之文件上传漏洞总结
文件上传漏洞是指用户上传了一个可执行的脚本文件,并通过此脚本文件获得了执行服务器端命令的能力。常见场景是web服务器允许用户上传图片或者普通文本文件保存,而用户绕过上传机制上传恶意代码并执行从而控制服务器。显然这种漏洞是getshell最快最直接的方法之一,需要说明的是上传文件操作本身是没有问题的,问题在于文件上传到服务器后,服务器怎么处理和解释文件。
HACK学习
2019/08/06
1.8K0
Web渗透之文件上传漏洞总结
浅谈常见的文件上传的检测方式与绕过方法
文件上传漏洞是我们平时渗透过程中经常利用的漏洞,利用文件上传我们可以直接得到webshell,是非常直接的攻击方式。写这篇文章主要是想对常见的文件上传检测和绕过进行总结,同时练习文件上传php代码的编写。
程序员纬度
2021/03/02
2.2K0
[红日安全]Web安全Day5 - 任意文件上传实战攻防
大家好,我们是红日安全-Web安全攻防小组。此项目是关于Web安全的系列文章分享,还包含一个HTB靶场供大家练习,我们给这个项目起了一个名字叫 Web安全实战 ,希望对想要学习Web安全的朋友们有所帮助。每一篇文章都是于基于漏洞简介-漏洞原理-漏洞危害-测试方法(手工测试,工具测试)-靶场测试(分为PHP靶场、JAVA靶场、Python靶场基本上三种靶场全部涵盖)-实战演练(主要选择相应CMS或者是Vulnhub进行实战演练),如果对大家有帮助请Star鼓励我们创作更好文章。如果你愿意加入我们,一起完善这个项目,欢迎通过邮件形式(sec-redclub@qq.com)联系我们。
红日安全
2020/02/20
2.2K0
上传靶机实战之upload-labs解题
我们知道对靶机的渗透可以提高自己对知识的掌握能力,这篇文章就对上传靶机upload-labs做一个全面的思路分析,一共21个关卡。让我们开始吧,之前也写过关于上传的专题,分别为浅谈文件上传漏洞(客户端JS检测绕过) 浅谈文件上传漏洞(其他方式绕过总结)
雪痕@
2021/06/10
1.9K0
上传绕过总结
1.前端代码 2.逻辑绕过 3.文件内容检测 4.文件包含、文件备份 5.容器及语言特性 6.畸形报文 4.文件包含、文件备份 8.SQLI方面 上传文件时WAF检测点: 1)请求的url,url是否合法 2)Boundary边界,通过Boundary边界确定内容来检测内容 3)MIME类型,即content-type 4)文件扩展名 5)文件内容 文件上传后导致的常见安全问题一般有: 1)上传文件是Web脚本语言,服务器的Web容器解释并执行了用户上传的脚本,导致代码执行。 2)上传文件是Flash的策略
安恒网络空间安全讲武堂
2018/02/06
1.8K0
上传绕过总结
Web漏洞 | 文件上传漏洞
文件上传漏洞是指攻击者上传了一个可执行的文件到服务器并执行。这里上传的文件可以是木马,病毒,恶意脚本或者WebShell等。
谢公子
2022/01/13
1.7K0
Web漏洞 | 文件上传漏洞
上传的验证绕过
一般这种就是只是做了前端的后缀格式限制。先把马改成能正常上传的格式,开启抓包,上改了后缀的马,抓包,改马的后缀。放行。成功绕过
洛米唯熊
2019/07/25
1.5K0
相关推荐
文件上传漏洞
更多 >
LV.0
这个人很懒,什么都没有留下~
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验