文件上传漏洞防范手段(网络安全之对文件上传的思考)
文件上传漏洞防范手段(网络安全之对文件上传的思考)
2024-10-01 09:48:32  作者:武则天  网址:https://m.xinb2b.cn/tech/vmg514542.html

在web渗透中,最简单直接的方式就是文件上传但是不做任何检测,直接getshell的现在已经很少了.我在平时的授权测试中,遇到的大多数都是对上传的文件内容,格式等检测的比较多的,我来为大家科普一下关于文件上传漏洞防范手段?下面希望有你要的答案,我们一起来看看吧!


文件上传漏洞防范手段

在web渗透中,最简单直接的方式就是文件上传。但是不做任何检测,直接getshell的现在已经很少了.我在平时的授权测试中,遇到的大多数都是对上传的文件内容,格式等检测的比较多的

按前端到后端绕过顺序分为:前端js检验、代码防护检测(比如waf)、服务端检测

一、文件上传安全配置

二、绕过服务端的代码检测

服务端的代码常检测request包中的三个点:

1)MIME类型

2)文件后缀

3)文件内容

理论上请求包的任何参数都可以作为检测点,但是对于文件上传功能来说,用户提交的请求包中这三个

地方,是辨别是否为恶意文件的重要的三个点,服务端检测基本都是检测这三个地方

1)MIME类型检测

代码中只校验了http头中的MIME类型。

request包中content-type字段改为image/jpeg)

这个逻辑适用于很多情况,这也是安全的基础:不信任任何客户端提交的数据。

2)文件后缀检测

文件名后缀检测分两种情况:白名单和黑名单。

绕过白名单或黑名单有诸多姿势:“服务器解析漏洞” 、 “文件命名规则”、“截断”、“长度

截断”、“条件竞争”、“双文件上传”、“可解析后缀”、“.htacees和user.ini”、“误用函数”

等等。

1、服务器解析漏洞

1.1、apache解析漏洞

对于Apache服务器来说,哪些后缀可以被解析是由什么决定呢?

apache中有一个关于php的默认配置文件,其中用正则指定了哪些后缀使用哪些解析器。

apache解析一个特点,解析文件时是从右往左判断,遇到不认识的后缀时,就跳过,于是就有了类似于

“.php.123”这种绕过方式。大多情况下,我们遇到apache解析漏洞的是配置错误导致的

1.2、nginx和iis7.5/7.0解析漏洞

此解析漏洞其实是php的配置错误导致。

php为了支持path info模式创造了fix_pathinfo这个选项,当它被打开时,fpm就会判断请求的文件是

否存在,如果不存在就去掉最后一个\开始的内容,再次查看文件是否存在,不存在再去掉从\开的内容

,循环往复。所以当请求http://192.168.1.100/admin/upload/shell.jpg/.php这么个文件时,fpm会

把/.php去掉把shell.jpg当作php执行。

后来出现了seccurity.limit_extensions选项,这个选项默认配置.php文件才能被fpm执行。

利用条件:

1、fast-cgi模式运行

2、Fix_pathinfo为1 (默认为1)

3、seccurity.limit_extensions选项允许(默认只解析.php)

1.3、iis5.x- iis6.x解析漏洞

使用iis5--iis6的基本都是Windows server 2003这种老服务器了。

这种老服务器默认一般只解析asp。

这个解析漏洞很简单,就两条:

1、以*.asp命名的文件夹下所有文件都以asp文件执行

2、.asp;.jpg这种形式的命名方式会自动会忽略掉;后的内容。

2、文件命名规则

2.1、windows命名规则

1、文件名长度最大为255个英文字符。(或者是127个中文字符 1个英文字符)

2、全路径最大长度最大为260个字符。

3、访问文件不区分大小写(部分应用程序使用时除外),显示文件时有大小写。

4、开头不能使用空格,其他地方可以。

5、文件名不能包含:< > | / \ * ? :

2.2、linux命名规则

1、文件名最大长度为255

2、全路径长度最大为4096(16级最大文件长度)

3、区分大小写

4、除“/”之外所有字符都可以使用

5、linux不以文件扩展名区分文件类型,对linux来说一切皆文件。

linux下通过命名规则绕过的话,可以尝试 \ 或者 && ; 等命令分割符号绕过

3、00截断

00截断常见的有、0x00等,他们都是表示ascii字符表中的保留字符chr(0)。

不管表示编码方式有啥区别,只要能让服务器正确解析为chr(0)就行。

00截断的原理:chr(0)表示结束。

限制条件:

小于php5.3.4 小于jdk1.7.0_40

未过滤chr(0),例如magicquoesgpc为off

4、长度截断

当文件名的长度超过系统允许的最大长度时,会将超出部分进行截断。

(部分系统不会进行截断,无法创建)

测试中可以使用二分法,不断尝试最大长度,然后进行截断。

5、条件竞争上传

当代码中的逻辑是先保存上传的文件,然后再判断上传文件是否合法时,便存在时间竞争条件漏洞。

首先写个生成马儿的马儿。

上传马儿,同时使用burpsuit不断请求马儿,或者写个脚本跑,

6、双文件上传

当代码中只对一处文件名做校验时,便存在双上传的漏洞。

使用burpsuit抓包改包或者F12修改前端代码都可以。

7、可解析后缀

不常见的可解析后缀:

1、ph(p[1-7]?|t(ml)?) ,shtml,pwml

2、asa ,asax, cer, cdx ,aspx,ascx,ashx,asmx,asp,

3、jspx,jspf,jspa,jsw,jsv,jtml

8、.htacces和user.ini

利用方式差不多,都是先上传配置文件,然后上传图片马之类的。

唯一不同是,user.ini是把图片内容附加在php脚本前面或者后面,类似于require()函数;

.htaccess是把图片内容用php来解析。

9、误用函数

empty()、isset()、strpos()、rename()、iconv()、copy()

3)文件内容检测

1、图片马

一般情况下检测文件相关信息、文件渲染都可以通过制作的图片马进行绕过。

文件渲染顾名思义,就是对上传的文件进行加载渲染,例如加载图片检测是否能正常使用。

绕过方式:burpsuit改包 或者 copy 1.jpg /b 2.php /a 3.jpg 生成图片马

2、二次渲染

二次渲染就不好过了,因为它会把图片中多余的语句去除,包括你的代码。

关于怎么制作过二次渲染的图片马,建议直接用别人做好的图片马

  • 老城区和新城区哪个发展会更好(非凡十年中原区)
  • 2024-10-01非凡十年中原区核心提示党的十八大以来,在新时代中国特色社会主义思想指引下,郑州牢记嘱托,砥砺奋进,经济社会发展取得辉煌成就本报推出“奋进新征程建功新时代”【出彩中原看郑州我为省会添光彩】“非凡十年”大型全媒体系列报。
  • 端午节龙舟绘画古风(古画中的龙舟竞渡)
  • 2024-10-01古画中的龙舟竞渡端午节在中国由来已久,可上溯至春秋时代关于其起源,较为普遍的说法是纪念屈原或伍子胥,关于端午习俗,最广为人知的是划龙舟、挂菖蒲、佩香囊、喝雄黄酒、饱粽子等其中划龙舟根据传说,源于屈原投江而根据今人考证。
  • 又简单又好的对联5字(又简单又好的对联5字一览)
  • 2024-10-01又简单又好的对联5字一览上联:春来瑞雪里;下联:人在画图中上联:春染千顷绿;下联:花开万朵红上联:春水千溪绿;下联:神州万里红上联:大地春风劲;下联:长征战鼓催上联:剑气冲星斗;下联:文光射云霞上联:静与鱼读月;下联:笑对鸟。
  • 好妻子电视剧剧情(好妻子电视剧剧情介绍)
  • 2024-10-01好妻子电视剧剧情介绍居家好妻子李家瑜多年如一日悉心照顾丈夫贺浩泽一家人,当公公患了急性肝硬化,需要她捐赠部分肝脏,她也二话不说谁料手术后,李家瑜发现丈夫贺浩泽内心深处爱着的却是自己的闺蜜周心妍,大受打击的李家瑜在山间散心。
  • 西安拍卖房屋信息网最新(西安一套已租到2032年房子遭拍卖)
  • 2024-10-01西安一套已租到2032年房子遭拍卖一套房子,房子已经出租到了2032年了,拿来拍卖,最终还高价成交,如果是这样的房子,你会愿意买来住吗?近日,在阿里法拍网,西安市一套住宅拍卖,就出现了这样情况拍卖结果2月6日,一套位于西安市雁塔区曲江。
  • 梦见鸡(梦见鸡什么意思)
  • 2024-10-01梦见鸡什么意思梦见鸡,五行属金,乃是地支中酉金之象征,主财旺之人,事业良好之意,多得他人之帮扶,秋天梦之吉利,冬天梦之不吉利在外求财者梦见鸡,往西走吉利,往东走不吉利,与属蛇之人,属龙之人共同求财,坚守中正之道,为。
  • 有良好的预防意识(提高认识做好预防)
  • 2024-10-01提高认识做好预防安全生产的三防一般是指防火、防灾、防事故随着冬季来临,防灾是冬季各类事故的易发期,受冬季寒冷,雨、雪等自然灾害天气的影响,给我们生活带来很多不利因素,容易导致各类安全事故这就需要做我们做好防火,防低温。
  • 方便48连胜后有没有被ko(这个蒙古族小伙真有两把刷子)
  • 2024-10-01这个蒙古族小伙真有两把刷子数月前"草原狼"和喜格图为了替队友李景亮出头,曾叫阵著名的站立格斗高手方便,扬言要在31秒KO他,此消息一出在中国格斗圈引发了热议,很多人都在质疑和喜格图的实力,认为他只是来蹭热度不管。
  • 夏至未至各人物结局(夏至未至大结局了)
  • 2024-10-01夏至未至大结局了七月,夏至未至热播以来,一直深受网友们的喜爱,自开播以来,电视剧点击率就一直上升,目前大约有20多亿的人在观看,看过小说版的网友就知道,电视剧版和小说版果然是不一样,原本立夏是女主角,可是不知为什么到。
  • 关于我妈的一切翻拍韩国哪部电影
  • 2024-10-01关于我妈的一切翻拍韩国哪部电影关于我妈的一切翻拍韩国电影《世上最美的离别》,本片改编自韩国作家卢熙庆的同名原著及电视剧卢熙庆因怀念自己因癌症去世的母亲而写就这本小说中刻画了一个平凡又伟大的母亲的一生母亲(裴宗玉饰)在婆婆身患老年痴。
  • 印度必去的10个景点(印度最美12个小众景点)
  • 2024-10-01印度最美12个小众景点当计划去印度旅行时,一些城市和历史主要景点都是人们的首选:海滩城市果阿、繁忙的德里和孟买、“神自己的卡拉拉邦”、塔吉阿格拉城但印度的心灵和灵魂或许在于它的小城镇和村庄,拥有一种真实的乡村生活方式,拥有。
  • 消防宣传进社区防火知识入民心(消防宣传进公园)
  • 2024-10-01消防宣传进公园为切实做好消防宣传工作,全面提升辖区内群众消防安全意识和自救能力,8月30日,韩城市消防救援大队消防宣传车驶入南湖公园开展消防安全知识宣传活动,为公园增添一道独特的“平安风景”  活动现场,韩城市消防。