[概念介绍:待补充...]
步骤:
1.熟悉各个功能,列出其中仅仅允许本账号操作的功能
2.找各个功能对应的请求,确定哪个(些)参数是决定这些功能正常进行的,称为关键参数
3.登录账号A操作某功能X,记录对应具体的关键参数值I
4.切换为账号B,操作功能X,抓包把关键参数改为I,放包
5.根据结果是否成功查询到A的数据或操作的A的功能,判断是否存在越权
备注:
1中的难点在于应用往往会很复杂,功能点难以全面梳理,但这也说明了都更多的机会找到其他人没有找到的存在问题的点
2中的难点在于某些参数比较复杂(过长或者加密混淆了),很难找到其中的规律,需要仔细分析,尝试把它分解(日期/时间戳+流水号)或者解码(base64)解密(模拟加密过程)
[常出现的功能点:代整理语言]
地址 评论 文章 通知 协议 合同 证明 账单 人员组织管理 余额 身份证号 手机号 他人图片(包括私人照片) 个人资料 订单 保单 预约单 众筹单 公益单转账信息 信用卡信息 好友列表 联系人 友链 交易记录 工单 头像 会员卡 咨询 收藏
例子:
预置条件:
创建订单功能: http://xxx.com/create.do?id=
删除订单功能: http://xxx.com/delete.do?id=
演练:
A用户创建一个编号为1311的订单:
http://xxx.com/create.do?id=201810241311
B用户访问:
http://xxx.com/delete.do?id=201810241311
A用户的创建的订单被删除,存在越权
tips:
攻击者怎么知道其他用户的标号?
攻击者可以通过创建几个订单发现id号存在一定规律(当天的日期加上很短的流水号),可以直接暴力删除~
原文地址:https://www.cnblogs.com/mkdd/p/9862810.html