心路历程
新手小白上手src的第二个月,终于挖到自己的第一个越权
越权的思路很容易就能够理解,但是我总是挖不到,所以一直怀疑是否是我没理解到位
今天才发现其实并不是我对越权理解有问题
而是找的功能点有问题
漏洞思路
一些主站或者一般资产,100个人来看这个功能点,100个能看出来这里有什么漏洞,所以明摆着的功能点肯定是被人挖完的了,所以系统对这个接口肯定也是做了充足的防御
像真实场景中我们去进行酒店的预定,当想要取消订单时,我们肯定会去取消订单的界面,而不是删除订单的界面。如果是删除历史订单,那危害肯定有限,但是如果删除订单也能实现取消订单的操作,那危害可以再上升一点
当我对某个系统进行测试的时候突然有了这个想法,已经支付但未入住的订单,删除它是不是等于取消订单,也就是变相取消订单,再配合越权,是不是就可以变相取消他人订单
漏洞描述:
该小程序在删除订单处,存在越权删除或取消他人订单,若订单已经支付但未入住,则会被取消,若订单未支付或已完成入住,则订单历史记录会被删除。而该系统控制订单值的参数只有后五位会变化,前七位为固定值,所以是可遍历的越权删除,恶意攻击者可利用此漏洞删除或取消全站所有订单。
漏洞复现:
1、使用A、B两个账号打开该小程序
2、两个账号分别生成一个订单,先展示不用支付的情况
3、进入我的订单界面
4、如下图所示
5、点击删除订单,bp抓包,发送至重放器并将原来的包丢弃
6、A账号的ID
7、B账号的ID
8、将A账号的ID值替换为B账号的
9、点击发送,可以看见响应包回显操作成功
10、查看A账号的订单,已经被删除
11、已支付的订单操作一样
12、在与审核交流之后,审核也是确定这个问题
算是自己思考得出来的想法吧,或许不是很有含金量