美文网首页
Web业务安全测试方法(1)—越权测试

Web业务安全测试方法(1)—越权测试

作者: Magicknight | 来源:发表于2017-11-25 18:10 被阅读780次

    来这家公司快四个月了,现在对这四个月的工作做一个总结。挖过越权漏洞、低价买服务漏洞、未鉴权的接口、CSRF漏洞、软件升级未做校验、组件暴露等漏洞,主要是业务方面的。下面我首先针对越权漏洞说下测试方法:

    1. 越权漏洞

    1.1 首先说先越权漏洞的分类:

    • 水平越权:A用户与B用户的级别权限是一样的,但A用户能够去查看B用户的敏感信息,或进行其它恶意操作。
    • 垂直越权:A用户提升了自己的权限,譬如:A用户是普通员工股,C用户是经理,经理能看到所有人的工资,但A不能,垂直越权后A用户就有C用户的权限了。

    1.2 什么地方容易出现越权呢?记住以下重点:

    • 用户除了身份(会话ID)标识外,站点还用其它信息(手机号、员工编码、工号或者使用Hash算法生成的)用来标识用户或用户信息。

    大家可能对用户信息又疑问,下面我举例来说明用户信息:譬如A用户的订单号是唯一的,B用户删除自己的订单时,把自己的订单号改为A的,如果有越权漏洞,那么B用户就删除了A用户的订单。

    1.3 越权实例

    限于公司保密需要,我找几个乌云的漏洞来说明下,没有的我就单独说明。

    1.3.1 水平越权—华住酒店某处越权删除修改用户信息

    删除用户的数据包

    从数据包中,我们可以看到addr_id是唯一标识用户地址的,服务器并没有去做判断用户是否有权限操作,导致了越权漏洞。诸如此类的还有保单信息、医疗保险等信息。这种改id号的最为初级的,也是最容易发现的越权漏洞。下面来看个进阶版。

    1.3.2 垂直越权

    测试环境:

    • A用户的操作界面没有审批接口
    • C经理或管理员界面有审批接口
      那么只要爬取到经理或管理员的接口,使用自己的身份标识去调用此接口,后台如果没有做权限判断,那么必定有此漏洞。

    1.3.3 进阶版越权

    一次测试过程中,发现获取用户信息的时候要提交自己的用户名,假设是XML文件:

    <username>A_user</username>
    

    我尝试改为

    <username>B_user</username>
    

    发现没有权限获取信息。怎么办呢?想到XML文件解析时,可能解析所有的节点,那么我同时提交两者的用户名:

    <username>A_user</username>
    <username>B_user</username>
    

    即可得到B用户的信息。

    1.4 修复越权漏洞方法:

    • 用户进行操作时一定要判断其是否有权限

    相关文章

      网友评论

          本文标题:Web业务安全测试方法(1)—越权测试

          本文链接:https://www.haomeiwen.com/subject/bliqbxtx.html