逻辑漏洞挖掘

逻辑漏洞

逻辑漏洞就是攻击者利用业务的设计缺陷,获取敏感信息或破坏业务的完整性。一般会有密码修改,越权访问,密码找回,交易支付金额(俗称薅羊毛)等。其中的越权访问又有水平越权和垂直越权。

  • 水平越权:相同级别的用户或者同一个角色中不同用户之间,可以越权访问,修改或者删除其他用户信息的非法操作,比如在审查个人信息时候常规的数据库会标记个人id,比如在URL结尾的id=77,如果后台没有限制,可以自行修改id参数,当输入id=78,79等等可以查看相同级别的用户信息。这样的漏洞会造成大批量的数据泄露。
  • 垂直越权:不同级别的权限更改,普通用户可以行使管理员权限。

常见的逻辑漏洞

  • 支付订单 :在支付订单时,可以自由篡改价格,运费,或者杂七杂八的东西,最后的总金额会减少
  • 越权访问:访问他人信息或者操控他人账户
  • 重置密码:存在多种逻辑,短信验证码可能直接存在返回的数据包中
  • 竞争条件:A有十元但是A利用了竞争条件可以多线程同时发送要求,就有可能十元购买很多种物品但是只减少一件商品金额。

一些试验方法

检测水平越权

  • 打开两个浏览器,分别用普通用户登录
  • 查看每个页面的链接,抓包分析其参数的意义,找到与用户名有关的参数,修改成其他用户,重放,看能否访问。如果能访问,则存在水平越权

检测垂直越权

  • 打开两个浏览器,一个浏览器用超级管理员admin身份登录,一个浏览器用普通用户身份登录
  • 仔细对比两个浏览器之间,哪些页面是管理员用户独有的,然后复制链接到普通用户浏览器打开,或者抓包分析包的结构然后篡改重放,看能否访问。如果能访问,则存在垂直越权。

 前端的JS代码中会有开发人员的痕迹,一些像逻辑验证,审查的函数语句都会存在注释,即使看不懂JS语句也可以拿去查询利用。靶机没有找到,直接转用谢公子的图

在这里的JS中直接把用户登录成功后的跳转界面标注出来了,如果后端没有验证,我们可以直接跳转到这个后台。

越权访问的修复

摘自《WEB安全攻防》

越权访问漏洞产生的原因是没有对用户身份做出判断和控制,防护这种漏洞时可以通过session控制。例如在用户登录成功后,将username或id写入到session中,当用户查看信息时候,从session中取出username,而不是从GET或POST请求去除username,此时的username是没有被篡改的。

发布了17 篇原创文章 · 获赞 21 · 访问量 7303

猜你喜欢

转载自blog.csdn.net/qq_44040833/article/details/104195615