因传播、使用本公众号“吃角鱼头莫吃角”提供的信息而造成的任何直接或间接的后果和损失,由用户自行承担。公众号猫角鱼头及作者对此不负任何责任,请自行承担一切责任并承担后果!如有侵权,请告知,我们将立即删除并致歉。谢谢!
0.2.其他
由于很多朋友告诉我用CSDN看文章不方便,而且有时设置粉丝后还需要登录账号才能阅读,所以我这里准备了一个公众号,会陆续同步文章,期间还可能发布一些其他内容。
文章内容过多,不适合在手机上查看。手机只适合点赞。
内容与CSDN同步:鱼头有剁椒却没有剁椒
1. 文件上传漏洞 1.1。文件上传漏洞定义
文件上传漏洞是Web系统中的常见功能。文件上传可以上传图片、视频等类型的文件。然而,随着网络包含的功能越来越多,潜在的网络安全风险也越来越大。大的。
如果恶意用户上传可执行文件或脚本,网站就会被用户控制,甚至服务器会受到危害,从而引发恶意网络安全事件。
1.2.文件上传漏洞原理
文件上传漏洞是指用户通过界面的上传功能上传可执行脚本文件,但WEB端系统未检测到或检测逻辑不够好。
一般来说,文件上传功能没有问题。主要是服务器如何处理上传的文件。
如果WEB无法有效审核用户上传的文件,并且有恶意用户向其上传一句话木马,就可以达到控制WEB网站的目的。
1.3.文件上传思路 1.3.1.一般类别
扫描上传、会员中心头像上传、后台系统上传等多种方式上传。
1.3.2.cms类
已知cms源代码。
1.3.3.编辑班
,,,。
1.3.4.其他类别/CVE
代码审计、平台或第三方应用程序。
1.4. Web 界面中的风险
上传头像、上传身份认证、上传文件、有文件上传的地方都可能存在相关漏洞。但上传文件并不一定意味着存在漏洞,只是上传文件可以进行测试。
1.5.文件上传的实用思路
上传文件和执行文件是两个不同的事情
漏洞分类:解析漏洞、cms漏洞、其他漏洞(编辑器漏洞、cve漏洞、安全修复)
主意:
如果您有网站,请从文件上传方向开始
第一步:首先查看中间件是否存在解析漏洞/CMS/编辑器漏洞/CVE/
如果有,如何找到它:
词典扫描:扫描会员中心及文件上传位置
找到它后,如何使用它:
认证/绕过
2.文件上传绕过分类2.1.JS保护
JS防护是对上传的文件进行某种格式的验证,但是JS防护是用户可控的,所以前端的所有验证都是不安全的。
2.1.1.前端验证2.1.1.1.-labs一级
通过禁用接口JS处理,然后上传1.php文件,可以绕过前端检测。关于如何禁用界面JS,可以通过安装插件一键禁用。搜索 附加组件市场。
图像
img2.2。黑名单
黑名单是服务器明确不允许上传的格式后缀,如:rar、php、zip等。
2.2.1.特殊解析后缀2.2.1.1。基本概念
由于黑名单过滤规则不严格,特殊解析后缀被绕过,某些情况下的后缀也可以被解析为PHP文件,如PHP2、php3、php4、phtml、pht等。
您可以使用 phtml、php3、php4、php5。当然,前提是服务器。同时,在配置文件夹中,需要删除/x-httpd-php .php .phtml .phps .php1 .php4 .pht段落前面的注释。 ,重启即可生效。
2.2.1.2.-实验室第三级
从源码中可知,禁止上传.asp、.aspx、.php、.jsp类型。
可以通过上传其他文件扩展名来绕过该级别,实现文件上传。
图像
img2.2.2..分析2.2.2.1.基本概念
.该文件是服务器中的配置文件,负责相关目录下的网页配置。通过该文件,您可以实现:网页301重定向、自定义404页面、更改文件扩展名、允许/阻止特定用户或目录的访问、禁止目录列出、配置默认文档等功能。
2.2.2.2.-实验室第四级
通过源码我们了解到,第三级使用的phtml受到限制,设置了更多特殊的解析后缀,因此无法再使用特殊解析后缀来绕过。您可以使用 .此处进行旁路测试。
先决条件:
开放模块
.配置文件为All(默认为None)
.需要使用++创建,否则无法创建。创建.code:
SetHandler application/x-httpd-php
x.png是用php执行目录中名为x.png的文件的代码。
首先上传.,然后上传一个名为x.png的文件来执行。
图像
img2.2.3.案例绕过2.2.3.1.基本概念
后缀情况是由于服务器没有将后缀转换成统一格式导致的,所以PHP文件是可以上传的。同时,由于系统对后缀大小写不敏感,所以编写PHP,改成Php时,会被当做PHP处理。解析。
2.2.3.2.-实验室第五级
从源码中我们知道它的大小没有限制,而且因为是黑名单,所以只限制不能上传的内容。然后我们可以改变php后缀的大小写,如:PHP、Php、pHp等。
图像
img2.2.4。单击绕过2.2.4.1。基本概念
点绕过实际上利用了对文件和文件名的限制。当点放在末尾时,会触发操作系统的命名规范问题,因此在生成文件时,末尾添加的点将被删除。 。
2.2.4.2.-实验室第七级
通过源码我们发现这个关卡没有检测到终点。然后你可以通过在后缀上添加一个点来绕过它。这里我使用的是之前的大小写文件,没有修改名称,所以不用太在意。这并不意味着您可以通过使用大写和小写字母来绕过它。
img2.2.4.3.-实验室级别 9
通过源码我们发现这一关之前的绕过思路全部被过滤掉了。但是通过源码我们发现所有的过滤都是一次完成的,并没有出现循环过滤的情况。也就是说,源码中提到的删除空格和删除点都只删除一次。然后添加php后缀即可。 。将数据打包成.php。 。由于只验证一次,所以删除一个点和一个空格就不会再删除了。
img2.2.5。空间旁路2.2.5.1。基本概念
其实空间绕行和点绕行是一样的。它们都是利用操作系统的特性来进行解析绕过。详细请参考的说明。
2.2.5.2.-实验室第六级
通过源码我们发现没有对空格的限制,所以我们可以在后缀中添加空格来绕过,但是在系统中我们无法创建后缀带有空格的文件,但是后缀中的空格不会数据包里写清楚。然后我们需要使用BS抓包,修改,然后上传。
修改后上传到对方服务器时,服务器会自动清除以下空格,从而实现绕过。
img2.2.6.::$$DATA 绕过 2.2.6.1。基本概念
如果使用文件名+“::DATA”,则其后面的数据被视为文件流,不会检测后缀名,而保留::$DATA之前的文件名。其目的不是检查后缀名。
2.2.6.2.-实验室第八级
通过源码发现::DATA并没有被绕过。
img2.2.7。协调解析漏洞2.2.7.1。基本概念
配合解析漏洞就是利用文件上传漏洞和相关解析漏洞相结合来完成攻击,比如配合iis、nginx、解析漏洞来获取上传漏洞的实现。详细信息请参见下面提到的各种相关解析漏洞。
2.2.8.双后缀名绕过 2.2.8.1。基本概念
服务器可能会将后缀替换为空,但是有可能在编辑过滤器的时候只过滤了一次,所以有可能可以通过双写绕过。
2.2.8.2.-实验室10级
通过源码我们发现,如果上传文件的后缀在禁止栏内,则将后缀替换为空,而这里只过滤一次,因此可以通过双写绕过。
既然这里过滤是从左到右匹配,那就别问为什么不是从右到左匹配。
例如:
img2.3.白名单
白名单是服务器可以明确上传的格式后缀,例如:jpg、png、jpeg等。
2.3.1.MIME绕过2.3.1.1.基本概念
服务器端MIME类型检测通过检查http中包含的-Type字段的值来判断上传的文件是否合法。
使用Burp抓包,并将数据包中的-Type更改为允许的类型。
-类型:image/gif(gif图像)
-类型:image/jpg(jpg图像)
-类型:image/png(png图像)
2.3.1.2.-实验室二级
通过源码中第五段的分析,得出本关使用-type进行后端验证,然后使用BS抓包修改-type,然后上传。
img2.3.2.截断2.3.2.1.基本概念
它代表的不是空格,而是null,空字符。程序执行时,后面的数据会停止,也就是说被误认为是终止符,直接忽略后面的数据,这样会导致漏洞。
文件上传后,通过截断来验证文件扩展名。但最终保存到本地时,文件名会被截断,只保存之前的内容。
只能用于 PHP 5.3 以下版本。这里我们需要切换版本并关闭,作为例子。其他选项菜单---php扩展和设置---参数开关设置---关闭。
2.3.2.2.-实验室11级
通过源码发现这个级别是白名单,但是路径可以截断。
img2.3.2.3.-实验室 12 级
该级别接受的值从 get 到 post 发生了变化。两者的区别在于get会自己解码,而post不会解码,所以需要解码。
在BS抓包中,右键选择URL,然后选择URL解码。
img2.4。内容及其他 2.4.1. 2.4.1.1. 文件头检测基本概念
保护中通常不使用后缀来判断图像的格式。文件头是文件开头的一段二进制代码。不同类型的图像将具有不同的二进制标头。
JPEG (jpg),文件头:FF D8 FF E1
PNG (png),文件头:89 50 4E 47
GIF (gif),文件头:47 49 46 38
img2.4.1.2.-实验室 13 级
制作图马可以直接打开图片,在最后添加一段PHP代码,但可能会出现错误。第二种是使用copy X.png /b + 1.php /a x.png。
如果要解析创建的图片,就必须有这个漏洞。我们看到他已经说过该网站存在漏洞
图像
上传图片马并找到路径。
图像
构造的URL:http://192.168.10.150/upload-labs/include.php?file=upload/2120221024150121.png
img2.4.2。二次渲染2.4.2.1。基本概念
二次渲染是指我们上传图片后,网站会对图片进行二次处理,比如处理图片的大小、格式以及网站定义图片的一些要求,服务器会对里面的内容进行重新处理。每次替换更新处理后,将生成合规图像并显示在网站上。
2.4.2.2.-实验室16级
其实这里也可以使用图片,即jpg等格式,不过最好使用gif图片。
使用抓包软件拦截并查看上传文件的名称。
从网上找到的GIF图马: 链接: 提取码:1b8h
图像
图像
构建的URL:http://192.168.10.150/upload-labs/include.php?file=/upload/18556.gif
img2.4.3.条件竞争2.4.3.1.基本概念
条件竞争是指源代码中有验证,但验证是在文件上传之后才开始的。即先将文件上传到服务器,然后服务器对文件进行验证。当符合要求时,文件将被重命名,当文件不符合要求时,文件将被删除。
我们需要在服务器删除该文件之前访问该文件。由于服务器在访问过程中无法删除文件,因此我们可以利用该节点来实现条件竞争。
2.4.4.突破.4.4.1.基本概念
该函数用于获取图像大小及相关信息。如果成功则返回一个数组。如果失败,则返回 false 并生成级别错误消息。
通过图像和代码的合成,该函数可以获取图像信息,并且还可以将文件后缀php解析为脚本文件,从而绕过该函数的限制。
2.4.4.2.-实验室14级
这个级别有一个函数。该函数的含义是:它会读取目标文件的十六进制数,看前几个字符串是否符合图片的要求。
使用方法与13级相同,但前提是需要存在相关漏洞。
img2.4.5.突破.4.5.1.基本概念
()函数检测上传的图片类型是否为白名单图片格式,以验证上传文件的合法性。可以通过制作图马来绕过它,然后利用该文件包含漏洞解析文件来获取服务器配置信息。
2.4.5.2.-实验室15级
上传一张图片马,然后用br抓包软件抓包,查看上传的文件名。
图像
URL:http://192.168.10.150/upload-labs/include.php?file=/upload/4920221126063306.png
img3. 3.1. 漏洞解析解析漏洞说明
解析漏洞是指服务器应用程序解析一些精心构造的后缀文件时,会将相关文件解析为网页脚本,从而控制网站。同时,大多数解析漏洞是由应用程序产生的。
3.2.IIS解析漏洞 3.2.1.IIS5.0/6.03.2.1.1.目录解析
文件夹下任何文件名为 .asp 的文件都将作为 asp 文件执行。
即当目录为XX.asp时,那么访问下面的图片,如XX.aps/1.jpg时,就会以ASP的方式执行。
3.2.1.2.文件解析
如果文件是1.asp; .jpg,由于IIS不解析以下内容,因此该文件会被解析为1.asp,另外还有.asa、.cer、.cdx可以解析。
3.2.1.3。修复建议
1)限制上传目录的执行权限,不允许执行脚本。
2) 不允许创建目录。
3) 重命名上传的文件。
3.2.2.IIS7.0/IIS7.53.2.2.1.IIS7.0/IIS7.5Fast-CGI
当Fast-CGI开启时,如果在1.jpg后面添加/1.php,则路径变为/1.jpg/1.php,并且会被解析为PHP文件。需要进入php.ini,修改cig.cgi_=1。
将文本文件1.txt中的后门代码写入图像1.jpg的二进制代码中:
copy 1.jpg/b + 1.txt/a 1.jpg
1.txt文件的内容为:
');?>
当镜像文件中写入后门代码,并在访问镜像时添加/.php时,就会在当前目录下生成一句话木马shell.php。
3.2.2.2.修复建议
配置cgi.(在php.ini中)为0并重启php-cgi程序
img3.3。 3.3.1. 解析漏洞解析漏洞
.x 和 .x 中存在解析漏洞。
当文件为1.php.yy.xx时,它将作为php执行。这是因为解析文件的时候有一个原则,就是用.后缀进行解析。当遇到未知的扩展名时,会向前解析,直到遇到可以解析的后缀名。
例如:1.php.yy.xx,会先解析xx。如果 xx 无法解析,则将解析 yy。如果yy无法解析,则解析php。如果php能被解析,就结束了。
此方法通常用于绕过黑名单检查。
3.3.2.修复建议
1)更新到最新版本。
2) 重命名上传的文件。
3.4.nginx解析漏洞3.4.1..4.1.1.nginx配置文件错误
由于nginx默认使用cgi解析php,因此可以像iis一样创建图片马进行上传。
当镜像文件中写入后门代码,并在访问镜像时添加/.php时,就会在当前目录下生成一句话木马shell.php。
3.4.1.2.修复建议
1)配置cgi.(在php.ini中)为0并重启php-cgi程序
图像
2)或者如果你需要使用cgi。该功能(例如: ),可以禁用上传目录的执行脚本权限。或者将上传和存储的内容与网站分离,即分离网站库。
3) 或更高版本的 PHP 提供了此配置参数, set 。 = .php
3.4.2.nginx 0.5/0.6/0.7
扫一扫在手机端查看
-
Tags : 修改图片信息_文件上传漏洞详解
我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、网站改版、域名注册、主机空间、手机网站建设、网站备案等方面的需求,请立即点击咨询我们或拨打咨询热线: 13761152229,我们会详细为你一一解答你心中的疑难。