目录
什么是越权
越权漏洞形成的原因是:
越权常见分类
漏洞产生条件
越权细分类
水平越权:
水平越权解释:
垂直越权:
垂直越权示例:
解释:
修复建议
例如
越权漏洞易发生的点
1.基础参数
2.多阶段验证
3.基于参数的访问控制
4.链接隐藏
5.其他位置
案例
目录越权:
SQL跨库查询:
04未授权访问漏洞
未授权访问漏洞汇总预览
案例
什么是越权
-
所谓越权
就是绕过权限限制或者在权限限制不够严格的情况下去访问原来不应该访问到的资源。
比如:
目录越权、任意订单遍历的业务类越权等等
如果使用
A用户的权限去操作B用户的数据,A的权限小于B的权限,如果能够成功操作,则称之为越权操作。
越权漏洞形成的原因是:
-
后台使用了不合理的权限校验规则导致的。
一般越权漏洞容易出现在权限页面(需要登录的页面)增、删、改、查的的地方,当用户对权限页面内的信息进行这些操作时
后台需要对当前用户的权限进行校验
看其是否具备操作的权限,从而给出响应
而如果校验的规则过于简单则容易出现越权漏洞
因此:在在权限管理中应该遵守:
1.使用最小权限原则对用户进行赋权;
2.使用合理(严格)的权限校验规则;
3.使用后台登录态作为条件进行权限判断,别动不动就瞎用前端传进来的条件
越权常见分类
-
目录越权分为多种
-
常见的有:
-
目录权限设置不严格
权限没有递归设置
web站点越权访问
用户权限鉴权被绕过。
-
也就是我能看到我账号权限的其它用户的权限
漏洞产生条件
-
越权漏洞高于逻辑漏洞
-
逻辑漏洞就是指攻击者利用业务的设计缺陷,获取敏感信息或破坏业务的完整性。
-
一般出现在密码修改、越权访问、密码找回、交易支付金额用户登录等功能
-
是由于权限校验的逻辑不够严谨导致的。
每个应用系统其用户对应的权限是根据其用户功能划分的
而每个企业的业务又都是不一样的
因此越权漏洞很难通过扫描工具发现出来,往往需要手动进行测试。
越权细分类
水平越权:
水平越权解释:
-
A用户和B用户属于同一级别用户
-
但各自不能操作对方个人信息。
-
-
A用户如果越权操作B用户的个人信息的情况称之为平行越权操作。
-
在网址上修改其它用户的用户名 同权限用户。
-
在当前已登陆的lucy的个人信息页面 修改url里面的username, 改为lili的用户名 如果可以登陆成功查看lili的信息, 说明这是一种越权行为 我们需要在源代码中添加一段判断的get请求是否来自于lucy即当前登录的用户的代码, 来拒绝越权的尝试。
垂直越权:
-
A用户权限高于B用户
-
B用户越权操作A用户的权限的情况称为垂直越权
-
-
只要用户执行了高于上一级用户的权限
-
则就是垂直越权。
-
-
普通用户执行了超级管理员的权限
-
这就叫垂直越权。
-
- 也就是我已a用户登录进去 但是a用户知道删除的网址是多说,然后a用户就执行了这个网址,用户被删除了,则说明a用户执行了超级管理员的权限,我们称之为垂直越权。
用普通用户的身份进行超级管理员的操作,如果操作成功,即可说明后台存在垂直越权的漏洞。
通过burp抓包拦截超级管理员登陆的数据包
然后将其登录态的cookie
【指某些网站为了辨别用户身份、进行 Session 跟踪而存储在用户本地终端上的数据,而这些数据通常会经过加密处理】
代替普通用户登录态中的数据包中的cookie,可以操作成功
即进行了一次垂直越权查看后台源码可发现
源码中只有判断超级管理员是否登录的代码
应该添加一段判断当前用户登陆的权限
判断用户级别是否为超级管理员的代码。
垂直越权示例:
http://wooyun.2xss.cc/bug_detail.php?wybug_id=wooyun-2015-0122573
-
用户的权限控制是有依据的 cookie sessionid 存放着响应依据
-
替换session id 普通用户和超级管理员用户的sessionid
-
Uid sid
解释:
-
普通用户 管理员账户
-
登录后分辨常看用户登录后响应的数据有什么区别来搞越权漏洞。
修复建议
-
越权访问漏洞产生的主要原因是因为没有对用户的身份做判断和控制
- 防护这种漏洞是
- 可以使用session【当访问服务器某个网页的时候,会在服务器端的内存里开辟一块内存,这块内存就叫做`SESSION】来控制
-
例如
-
用户在登录成功后, 将用户名写入session中
-
当用户查看个人信息时,通过session中取出username
-
而不是从GET或者POST中取到username
-
那么此时的username就不会被篡改了
-
越权漏洞易发生的点
1.基础参数
-
通过修改一下参数就可以产生水平越权
-
例如查看用户信息页面 URL 后加上自己的 id 便可查看
-
当修改为他人的id号时会返回他人的信息
-
再比如cookie中的参数就作为用户的凭据,修改这个凭据便可以其他用户身份通过验证。
-
2.多阶段验证
-
多阶段功能是一个功能有多个阶段的实现。
-
例如修改密码,可能第一步是验证用户身份信息,号码验证码类的。
-
当验证成功后,跳到第二步,输入新密码
-
很多程序会在这一步不再验证用户身份
-
导致恶意攻击者抓包直接修改参数值
-
导致可修改任意用户密码
-
3.基于参数的访问控制
-
有的程序会在参数里面进行权限认证。
-
如:www.xxx.com/uid=test&admin=0
-
把0改为1就有了admin权限。
-
4.链接隐藏
-
有的程序会把页面独立,让爬虫爬取不到
-
但是可以使用扫目录的方式扫到url,如果此时页面不做权限认证【漏扫描工具 考研字典的强大】
-
就可直接访问到功能点,或者只是前端跳转
-
可以使用burp抓回包,然后删除js代码绕过
-
5.其他位置
-
越权可能存在的地方:增、删、改、查、详情、导出等功能
-
当有这些功能的时候提高重视
-
在url、post data、cookie处寻找是否有鉴权参数
-
最关键的点就是定位鉴权参数,然后替换为其他账户鉴权参数的方法来发现越权漏洞。
-
案例
- 通过修改GET传参来越权。案例
- https://cn-sec.com/archives/2572.html
- 修改POST传参进行越权。 案例
- https://cn-sec.com/archives/1682.html
- 修改cookie传参进行越权。案例
- https://cn-sec.com/archives/6421.html
- 抓取传参可以在浏览器、APP、应用程序exe 案例
- https://cn-sec.com/archives/5930.html
- 未授权访问。严格意义上而言这个不属于越权漏洞,但是在日常测试中常常会遇见。只要输入正确的网址就可以直接访问,例如/admin默认是登录,登录后跳转到user.php,然后你直接访问user.php,发现你直接有后台权限。 案例
- https://cn-sec.com/archives/5930.html
- 业务逻辑绕过。 案例
- https://cn-sec.com/archives/17524.html
目录越权:
User 权限没做限制 所以可以访问任意文件,那么配置这个用户访问特定的目录那么就可以设定好,防止目录越权。
运维人员使用了同一个web服务应用程序(很多安全人员管这个叫做中间件)用户而造成目录越权
同时中间件用户权限过高也可以造成目录越权。
这个和我们刚才说的旁注产生的原因一样。
很多运维人员都喜欢用root用户来搭建web服务
这种情况下如果别人拉取到webshell
那么就很容易控制了你的服务器。
SQL跨库查询:
也就是跨库查询权限漏洞。
也就是mysql数据库权限分配不当
对用户所能访问的目录进行限制如果没有限制或者限制不当就会出现目录越权的问题。
其实主要也是因为运维人员或者dba的安全意识不够导致的
说白了就是权限分配不当的问题导致的。
跨库查询是指由于权限设置不严格,导致普通帐号被授予过高的权限,从而使得其可以对其他的数据库进行操作。
04未授权访问漏洞
- 未授权访问漏洞是一个在企业内部非常常见的问题
- 未授权访问可以理解为需要安全配置或权限认证的地址
- 授权页面存在缺陷
- 导致其他用户可以直接访问
- 从而引发重要权限可被操作、数据库、网站目录等敏感信息泄露。
未授权访问漏洞汇总预览
1 、FTP 未授权访问(21)
2 、LDAP 未授权访问(389)
3 、Rsync 未授权访问(873)
4 、ZooKeeper 未授权访问(2181)
5 、Docker 未授权访问(2375)
6 、Docker Registry未授权(5000)
7 、Kibana 未授权访问(5601)
8 、VNC 未授权访问(5900、5901)
9 、CouchDB 未授权访问(5984) 15
10 、Apache Spark 未授权访问(6066、8081、8082)
11 、Redis 未授权访问(6379)
12 、Weblogic 未授权访问(7001)
13 、HadoopYARN 未授权访问(8088)
14 、JBoss 未授权访问(8080)
15 、Jenkins 未授权访问(8080)
16 、Kubernetes Api Server 未授权(8080、10250)
17 、Active MQ 未授权访问(8161)
18 、Jupyter Notebook 未授权访问(8888)
19 、Elasticsearch 未授权访问(9200、9300)
20 、Zabbix 未授权访问(10051)
21 、Memcached 未授权访问(11211)
22 、RabbitMQ 未授权访问(15672、15692、25672)
23 、MongoDB 未授权访问(27017)
24 、NFS 未授权访问(2049、20048)
25 、Dubbo 未授权访问(28096)
26 、Druid 未授权访问
27 、Solr 未授权访问
28 、SpringBoot Actuator 未授权访问
29 、SwaggerUI未授权访问漏洞
30 、Harbor未授权添加管理员漏洞
31 、Windows ipc共享未授权访问漏洞
32 、宝塔phpmyadmin未授权访问
33 、WordPress未授权访问漏洞
34 、Atlassian Crowd 未授权访问
35 、PHP-FPM Fastcgi未授权访问漏洞
36 、uWSGI未授权访问漏洞
37 、Kong未授权访问漏洞(CVE-2020-11710)
案例
http://wooyun.2xss.cc/bug_detail.php?wybug_id=wooyun-2016-0228007
奥鹏教育某处未授权访问可影响大量学生信息 | wooyun-2016-0228007| WooYun.org
奥鹏教育某处未授权访问可影响大量学生信息 | wooyun-2016-0228007| WooYun.org