文件上传实战_文件上传突破技巧[通俗易懂]

文件上传实战_文件上传突破技巧[通俗易懂]基础及过滤方式什么是文件上传漏洞?存在文件上传的地方均有可能有文件漏洞(但不是一定有);如果上传代码某个地方存在验证疏忽,则会有文件漏洞危害可能直接获取网站权限,危害高于sql注入如何查找1.通过扫描敏感文件,字典里面会有一些常见上传地址;2.会员中心大部分会有一个图像上传利用图像上传

大家好,欢迎来到IT知识分享网。

基础及过滤方式

什么是文件上传漏洞?

存在文件上传的地方均有可能有文件漏洞(但不是一定有);如果上传代码某个地方存在验证疏忽,则会有文件漏洞

危害

可能直接获取网站权限,危害高于sql注入

如何查找

1.通过扫描敏感文件,字典里面会有一些常见上传地址;

2.会员中心大部分会有一个图像上传利用图像上传;

3.进入网站后台也有上传,但后台权限不等于网站权限;

4.白盒从对方代码中分析某些地方有没有文件上传功能进行查找漏洞;

文件上传的利用思路

拿到文件上传后,对来源和类型进行简要了解,选择对应的思路

常规

扫描获取上传

通过网站敏感文件扫描获取上传地址

会员中心上传

大部分有上传图像的功能;后台系统上传;各种途径上传

CMS

已知CMS源码上传

编译器

ckeditor、fckeditor、kindeditor、xxxxeditor

其他/CVE

代码审计

平台/第三方应用等

找网站上传的url通过搜索引擎

site:url (无三级域名) upload

解析漏洞(前提:访问了代码文件)

格式上的解析出现了混乱;上传图片文件能够解析成为代码文件

注:

1.文件上传大部分不允许上传脚本格式,允许的一般是压缩文件或者音频文件

2.提示不允许代码文件上传时,可以通过修改前端代码绕过文件格式验证

3.前端的脚本(HTML.JS)在用户的浏览器上执行,直接可见;而后端的代码(PHP)在服务器执行后将结果返回给用户

4.如果前端禁用js脚本,过滤代码就会被禁用,但不安全并且可能禁用正常js脚本;相反,后端需要发送至服务器处理,相对安全

5.如果整个上传流程是js写的,则可能抓不到包(如果前后端没有交互则抓不到包)

6.没有上传成功但已经传输到对方服务器了,失败或成功可能没有返回路径

7.不同类型不同方式;不能通过图片格式的文件执行代码,必须要解析或者改后缀

8.CVE:通用漏洞披露,用来表示一种漏洞的特定编号,如CVE-2020-15999{年-编号}

9.MIME:浏览器通常使用MIME识别文件类型以此确定如何处理文档;在Burpsuite中Content-type对应的参数,一般格式是type/subtype

黑白名单绕过

文件上传常见验证

后缀名;黑名单;白名单;

文件类型

MIME信息

文件头(文件内容验证)

内容头信息

黑名单

asp;php;jsp;aspx;cgi;war等,即碰到明确不允许上传的后缀

后缀名不完全就可以通过类似后缀绕过,例如黑名单为.php则使用.php5、.php7等

白名单(较黑名单安全)

jpg;png;zip;rar等,即碰到只允许上传

判断content-type的值判断格式

修改绕过断定,可以伪造,通过抓包修改发送数据包

源码的表单

onsubmit属性的return checkfile()对信息进行过滤

method属性对应传参格式post或者get

几个函数

$_FILES[‘upload_file’][‘type’]

判断MIME类型

$_FILES[‘upload_file’][‘size’]

判断文件大小,单位是字节

if(isset…)

判断是否触发

特殊解析后缀

最好上传同类型的脚本;其他格式执行其他效果,取决于其他的服务器的执行效果

.htaccess

超文本入口;提供了针对目录改变配置的方法;通过此文件实现解析的自定义

后缀名大小写绕过

修改大小写;代码验证没有空格则添加空格也可以实现绕过(windows);也可以添加.但linux不行

php在windows中,如果添加了::$DATA则会被当成文件流处理,不会检测后缀名,且保持::$DATA前的文件名

代码将字符串php替换为空

如:a.php变成a.;此时可以通过双写绕过a.pphphp

过滤了后缀,即使上传成功代码也无法执行

0x00与%00截断

0x00截断:建立在文件命名上;也就是ACSII码为0的符号在某些函数中,被当作结束符,如果系统对文件名读取,读取到0x00可能会认为读取完成,就实现了绕过后缀

%00截断:建立在地址信息上;%00被解码成了0x00发挥了作用

注:

1.get自动解码,加%00就会相当于url的值,相当于真实的编码值;

2.post不会自动解码;

内容逻辑数组绕过

图片一句话:copy 1.png /b + shell.php /a webshell.jpg,上传图片马

二次渲染:相当于直接将文件上传至服务器上进行重命名,未进行文件检测;此时使用资源占用[上传文件的瞬间,将文件打开使服务器不能对文件进行操作、进行重新命名,而实现绕过]

目录命名:xx.php%00.jpg用%00截断;xx.php/.被认作文件以php结尾,而绕过php文件验证

iis 6.0漏洞以文件夹形式、xx.asp/php形式触发

文件夹:image/qq.jpg(原本),修改为image.asp/qq.jpg则会被当做asp解析

文件:image.jpg(原本),修改为image.asp;image.jpg则会被当做asp解析

如果是php文件将asp修改为php即可

常见绕过方法

数据溢出

防匹配(xxxxx)、将文件名重复,数据量变大,导致服务器崩溃,可能不会上传上去、将重复的东西单独一行放在文件名前面,添加;分号、垃圾数据溢出

符号变异

防匹配(‘,”,;)、文件名后面没有分号,添加分号(表示结束)表示后面还有参数、双引号改单引号、去掉后面的双引号,实现错误闭合,匹配”前的内容、也可以 “随便加”文件.php

数据截断

防匹配(%00,;,换行)、x.jpg .php、x.php .jpg、x.jpg;.php、x.php%00.jpg、x.php(回车分成三行)

重复数据

防匹配(参数多次)、重复识别的参数以第几个为准,然后重复识别的参数(类似递归),再用数据溢出方法

白名单方法

将前面的参数复制到filename的双引号里面并且添加x.php

用斜杠进行截断

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/29618.html

(0)

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信