一次token验证之转走你的的余额

漏洞发现

一次授权测试中,发现了一个我这个菜鸡感觉不错的点。写出来分享一下。

抓包中找到了网址,访问看看

一次token验证之转走你的的余额_第1张图片发现是thinkphp搭建的,但是不知道什么版本。因为这次的目的只是看看商城中有没有好玩的。暂且不对其进行信息收集。

对于商城类的,我习惯先去测试有没有xss、越权之类的。测试无果。
抓包发现一处ID

一次token验证之转走你的的余额_第2张图片
发现存在注入
一次token验证之转走你的的余额_第3张图片

进一步利用

发现了用户的数据库has_user
一次token验证之转走你的的余额_第4张图片
发现主要的数据有账户、token、和密码。尝试对密码解密失败
一次token验证之转走你的的余额_第5张图片
先去看看其他的功能点
一次token验证之转走你的的余额_第6张图片
发现删除PHPSESSID,一样可以。看了看参数,猜测主要的认证点是token
一次token验证之转走你的的余额_第7张图片
恰好数据库中的had_user表中有个token,不知道这俩是不是同胞兄弟。拿下来试试
一次token验证之转走你的的余额_第8张图片
失败了,没道理呀。数据库的token肯定用处的,站在开发的角度思考一下问题。
有了token验证,那PHPSESSID还有用吗。删除一下
一次token验证之转走你的的余额_第9张图片

最终的坚持

那么有了token,是不是就可以操作所有的账户了呢
尝试下转走别人得到钱
输入自己的账户
注:两个账户都是自己的,为此含泪充值了5元钱。
一次token验证之转走你的的余额_第10张图片
雅痞,提示这个
一次token验证之转走你的的余额_第11张图片
这怎么在自己的账户转给自己钱呢。
在?验证码发一下?
尝试修改token为别人的
一次token验证之转走你的的余额_第12张图片
成功,继续下一步
在这里插入图片描述

一次token验证之转走你的的余额_第13张图片
交易密码肯定是存在在数据库得,而且支付密码可以爆破,鉴于时间关系。不找了。两个账户都是我的,我肯定知道交易密码的啦
一次token验证之转走你的的余额_第14张图片
搞定。既然如此,我是不是可以找到所有用户的token和余额。然后。。。
111

注:这次文章是测试完之后写的,漏洞已经修复,所以截图可能不是很全。
总结:这次漏洞的流程是,找到了注入点,发现用户表的存在token的值,然后api请求的链接也存在token。而后端验证的方式不是PHPSESSID,而是token。但是携带PHPSESSID时,伪造别人的token,会导致请求数据失败,所以删除了PHPSESSID,就可以从用户表中使用其他用户的token,来将其他用户的钱转到自己账户中。

你可能感兴趣的:(漏洞挖掘,PHP,安全,渗透测试,安全漏洞)