chenhongl

导航

 

 

一、前置知识点

1. 逻辑越权原理:

  水平越权:同级用户权限共享,用户信息获取时未对用户与ID比较判断直接查询等;

  垂直越权:低高级用户权限共享。数据库中用户类型编号接受篡改或高权限未作验证等;

2. 访问控制原理

  验证丢失:未包含引用验证代码文件等;

  取消验证:支付空口令、匿名、白名单等。

 

3. 脆弱验证原理
  cookie&token&JWT:不安全的验证逻辑等。

二、水平越权示例——检测数据比对弱
1、【例】:水平越权演示
① 打开要进行测试的网站的数据库,可以看到数据库内存储了几个用户的账户信息。

 

②  登录“xiaodi001”,修改个人信息时抓包

 

③ 将数据包中的账户名“xiaodi001”,修改为数据库中已存在的另一个账号,“xiaodi002”,同时将id值改为2,因为数据库内对应的xiaodi002的账户的id值为2,同时将其它信息也进行修改。

 

④ 放包后网页内显示“信息编辑成功”。

 

⑤ 此时再次查看数据库,可以发现账户名为xiaodi002的账户的信息被修改

 

2、如何防护

  1. 对比当前用户,当前登陆的用户是谁,在修改信息的时候先获取到当前用户的用户名,在进行修改的时候,只能在此用户上进行修改,将账户名改成其它的,依然无效。

  2.查看源代码,可以看到其对nickname进行了接收,它不是固定死的,用户发送的是谁,它带入的就是谁,这就导致其可以对其它用户进行操作。

3.如果在用户进行登录的时候,就将用户的用户名给获取到然后固定死了,就不会发生上面的事情了。

 

三、垂直越权——权限操作无验证
1、【例】:MiniCMS
① 登录后台,进入到“管理文章”页面,点击撰写文章后随便写入内容然后发布

 

② 来到“管理文章”列表页面,点击“回收”按钮之后复制它的链接

 

③ .换一个没有登陆过的浏览器,未登录

 

④ 回收选项只存在于后台内,我们在这个新的浏览器里并没有进行登陆,此状态下来尝试执行刚刚复制出来的回收文章的链接

访问刚刚复制出来的链接后,网页没有发生变化,依然在登陆界面

但是我们来到后台,可以看到刚刚发布的文章已经消失了

 

2、漏洞成因

  1.网站对用户发送的数据包没有进行验证,没有验证触发当前操作的用户权限。

  2.有验证,但是逻辑顺序搞错了。

    先验证,再操作——正确。
    先操作,再验证——错误。


四、访问控制示例——代码未引用验证
1、【例】:越权演示 - xhcms
① 先打开网站登陆,验证可以正常登陆。

 

② 退出登陆。

③ 查看网站源代码,检查登陆的代码

 

④  登录时,会先验证登录,我们将验证身份的代码注释掉

然后再回到网站,此时未登录也可以从index页面直接跳转到网站登陆后的页面了

 

⑤ 查看网站源代码,可以发现很多功能都引用了验证有没有登录的文件

这就是有些网页在我们未登录状态下就可以访问,有些页面必须登录后才能进行访问的原因

 

⑥ 如果一个页面必须登录后访问,但是代码中又没有包含验证登录的文件,那么这个页面就可以进行未授权访问。

当我们进行漏洞挖掘的时候,就可以查看敏感页面(比如后台页面)有没有引用验证代码,如果没有引用到,那么就存在越权漏洞。

 

五、脆弱机制示例——Cookie脆弱验证
1、越权演示-xhcms
① 登录时抓取数据包

 

② 修改数据包:把cookie改成user的键值对,user的值随便输入后提交数据包

把包放出去,可以成功进入到了登录后的页面了

 

2、漏洞原因

这就是虽然存在验证,但是验证太单一了

 

六、真实案例演示
① 我们使用fofa查找对应的cms。

 

② 打开一个对应的网站进行测试

③ 来到登陆页面点击登录时抓包,并修改cookie

④ 放包后可以看到成功进入到了后台页面

 

七、空口令机制示例——Redis&Weblogic 弱机制
<演示一>
1.来到下面的靶场来查询对应的靶场。

 

2. 环境介绍。

 

3.将环境启动。

 

4. 使用客户端填写对应的ip以及端口来进行访问,发现成功访问进去了。

 

<演示二>
1.环境介绍。

 

2.将环境启动后来到后台登陆页面。

 

3.在url栏内输入下面的地址后即可进行未授权访问。

 

4.如图所示成功进入了后台。

 

 

posted on 2024-06-14 16:59  chenhongl  阅读(71)  评论(0)    收藏  举报