0x01 前言
最近都没怎么挖到过细小的漏洞,一直纠结于一些比较难以实现的点,天天在各种测试、上线服务器里面fuzz找遗漏的点(bushi)
大概上周突破了一处付费资源免费调用,定级了,故发出来水水文
0x02 绕过过程
逛着逛着主站,突然发现大部分的课程都是付费的,只有一小部分课程是免费的,f12看了看接口
data即返回的数据流文件进行连接播放
如果是免费的资源可以直接通过该数据包针对对应的courseid参数进行发包获取data地址,但付费的资源获取不到courseid和对应的一些参数
且存在sign认证
所以重金花几十块钱买了一节课,看看接口是否一样,根据f12反复调试,最终确定了sign加密的参数
但由于加密的参数是混淆过的,又不舍得花钱,找不到参数的规律,只好去找找连贯性的资源,找了大量的免费资源终于找到有存在两节课的免费资源,调试发现
加密的参数即xd为小节序号,xid为章序号,而couseid为课程序号
即1.1 2.1 1.3 则会根据对应的catagory递增1
加密过程这里就不过多披露了
大概经历了三次加密,一次排序一次aes一次自己写的md5(实际上跟直接使用md5没什么差别)
尝试对付费资源进行了发送数据包
可以看到sign绕过失败,明明过程都没问题啊??难道有相关身份认证??
尝试把previewStatus改成false(即不预览,不免费观看的意思)
发现成功,但不返回data数据过来,我估计有相关认证,本来都准备放弃了。
又不舍得自己付出去的那几十块钱,于是又试了一节课(注意,是第一节不让观看的付费课)
成功!!!