记一次逻辑漏洞挖掘
天眼 渗透测试 10163浏览 · 2021-02-22 08:38

正常我们挖逻辑漏洞一般都是从越权开始挖起,但是一般这些越权的参数基本都做了加密处理,刚好今天接了一个项目,感觉还挺有意思的,在这里分享一下。

刚拿到手这个网站,一看发现是预约系统,首先想到的是有没有可能存在越权,只要越权了就能看到他人预约信息。

然后就是正常流程,随便输入信息提交,然后点击我的预约就出来了预约的信息了,接着就开始点击预约信息抓包,发现id参数和userid参数是base64编码的,那好搞了啊,继续解码。

解码出来发现又是加密的,完全无解,反正对加密这块是不怎么了解,那凉凉了。

想来想去不知道该怎么办呢,然后又尝试对删除预约按钮抓了个包,发现这里的参数是没有加密的,知道id是6位数的数字,但知道解密后面的id也没用啊,还是不知道怎么加密。

然后又预约了一个信息,对两个id值替换一下发现是可以越权查看信息的的,userid值是固定的,但是没法知道怎么加密那完全没办法越权啊,接着就一个一个功能点都点了一遍,就有了新了发现。

发现在提交完预约信息后是可以让修改的,抓了修改的包发现也是不加密的,再查看响应包,发现是跳转到了修改预约信息的界面,然后再抓了下提交的按钮发现又变成了加密。

从上个步骤我们知道了修改处是不加密的,然后再到提交的时候又是加密的,

那我们是不是可以尝试对修改处的包进行修改呢,然后不断尝试,发现通过修改appid后面的参数返回包是正常的,修改其他参数都无法跳转,接着把appid后面的数字修改为id后面的数字,接着去找跳转后的数据包。

找到跳转后页面,查看前端源码,发现appid加密的参数,成功变成了我们之前id加密的参数一样了。

那这里就好搞了,修改的步骤会给我们自动加密,那我们写一个脚本批量遍历一波加密的字典,然后这里开始遍历id参数,成功越权查看他人预约信息,到此结束。

4 条评论
某人
表情
可输入 255
sev****anwl
2021-03-05 02:15 0 回复

学到了 学到了 以前局限了 编码解不出来就放弃了


popstack
2021-02-23 02:38 1 回复

其实前端的加密都可以通过逆向js拿到算法


天眼
2021-02-22 16:11 1 回复

@jijue 大概就是你这个意思,主要关键点是这个接口可以帮我主动加密,我就可以用这个接口去生成一批加密的id去跑就可以了。


jijue
2021-02-22 14:53 0 回复

您好,您的思路非常棒,感谢分享,

在文末的关键处,我好像不太理解您的操作流程,我猜测您是找到了某个接口,通过向这个接口发送id,它会返回加密后id,然后您将所有的id批量跑一遍,获得所有的加密id后,又回到文章开头处的地方,将所有的用户预约信息批量获取出来。

不知道这样理解是否正确。

望回复


目录