在web渗透中,最简单直接的方式就是上传文件 。但是很少不经过任何测试就直接得到外壳 。我在平时的授权测试中遇到的大部分测试更多的是对上传文件的内容和格式的测试 。
按照前端到后端旁路的顺序,分为前端js检查、代码保护检查(如waf)和服务器端检查 。
一、文件上传安全配置
第二,绕过服务器的代码检测 。
服务器端的代码通常在请求包中检测三个点:
1)MIME类型
2)文件后缀
3)文件内容
理论上,请求包的任何参数都可以作为检测点,但是对于文件上传功能,用户提交的请求包中的这三个参数
地方是鉴别是否为恶意文件的重要点,服务器端检测基本检测这三个地方 。
1)MIME类型检测
代码中只验证http头中的MIME类型 。
请求包中的内容类型字段被改变为图像/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创建了fix _ path info选项来支持path info模式 。当它被打开时,fpm将判断请求的文件是
否,如果不存在,则删除最后\开始的内容,再次检查文件是否存在,如果不存在,则删除\中的内容 。
,循环 。所以当一个像http://192 . 168 . 1 . 100/admin/upload/shell . jpg/这样的文件 。php被请求,fpm将
移除/ 。并将shell.jpg作为php执行 。
后来,出现了选项seccurity.limit _ extensions,它配置 。php文件,然后fpm才能执行它 。
使用条件:
1、快速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.Access文件不区分大小写(除非某些应用程序使用它们),并以大小写显示文件 。
4.开头不能用空,其他地方可以 。
【asp文件用什么运行 asp文件怎么打开】5.文件名不能包含:
推荐阅读
- 佛山翰林湖油菜花海打卡指南 佛山翰林湖公园
- 佛山翰林湖农业公园 佛山翰林湖油菜花几月开放?
- 肇庆市梨花赏花地点汇总 肇庆梨园
- 紫山药葡萄的做法 紫山药葡萄的制作方法
- 肇庆看花的地方 肇庆哪里有梨花看?
- 冻的鱼肉怎么快速解冻 冻的鱼肉快速解冻方法
- 新丰桃花是在哪里 韶关新丰江桃花岛门票优惠政策
- 拔牙脸肿多久 我的智齿拔了脸型变了
- 孕检去哪里 男性孕前检查项目挂什么科