漏洞挖掘|一次在线商城漏洞挖掘
2024-5-15 14:56:29 Author: mp.weixin.qq.com(查看原文) 阅读量:1 收藏

点击下方名片即可关注,只更高质量文章

0x01 前言
    最近事情比较多,一直没啥时间挖洞,正好今天简单挖点漏洞,并且讲一下思路原理,漏洞简单,没有RCE,目标是一个在线商城,本次信息收集采用互联网信息收集(包括不限于:shodan、fofa、hunter、google等)及本地灯塔信息收集(灯塔停止维护了、此处默哀2秒),因为时间问题,就简单打点了点资产,端口就选TOP100,没有漏扫,因为有WAF所以出来的东西也比较少,只能手动测测
站点概括:WAF: 华为云、移动云CDN: 七牛CDNWEB端: mobile及小程序APP: 没看漏洞: 短信纵向轰炸+2、敏感信息泄露+2、支付漏洞+1失败漏洞: 任意文件上传(上传成功、无法执行)         若依利用(可注册账号、无管理员权限、没往下继续搞)         swagger-ui(需鉴权)
* 故事情节虚拟、文章仅供交流与学习、请勿非法操作,否则后果自负
0x02 漏洞解析
纵向短信一
    首先,就是第一个挖到的短信纵向,这里先说一下横向和纵向
横向轰炸: 指的是对单一手机号有限轰炸,但是对其它手机号不限制         这里开发一般以手机号为基准,在X时间内限制为N条纵向轰炸: 指的是未对手机号及其它参数做判定,或对其它参数有判定         但是可以进行绕过,后面我会进行解析
    使用灯塔ARL进行搜集到x.target.com为数据支撑平台,但是没有注册接口,只有登录接口,登录接口有验证码,当然,爆破也可以,现在外面有爆破图片验证码的插件,但是由于可能造成的流量大,我没有尝试

    接着看前端源代码,查看到JavaScript某接口,拼接后疑似注册接口/xxxx/jsp/xxx/checkxxx.jsp

    因为是未授权访问,手机号参数没办法点击,这里有个诀窍,在不知道有什么参数的情况下,点一下可以执行的按钮,大概率是可以抓到的,当然有些情况除外(比如:前端JS校验,没有传输流量)

    因为不能输入手机号,我填了一下其它参数,然后发送验证码,肯定会校验参数,这样情况下,抓到数据包,手机号参数为mobile

    然后我们输入手机号,再次发送验证码就能看到验证码发送成功了

    然后返回网页继续点下一步,抓到最后的包,完善参数,手机号验证码进行拼接,但是这里出现了问题,让联系客服,经测试短信发送次数无限制、无奈最终只收获了纵向短信一枚

纵向短信二

    第二个是在主站,当然并非只有主站,小程序也是这个情况,主站mobile.target.com、小程序为custer.target.com,但是这里开发把小程序所有发送和返回参数全部base64编码了

    这种一般水洞倒是也可以交,不过之前主备的方式,不同的子域名但是漏洞一样,当时交补天是只给过了一个,另一个说重复了

    先说mobile.target.com,这个是手机端的,和APP一样,我这里没下载APP去做,直接WEB搞的,进去先抓发送短信包,正常情况下是发出去了的

    多请求几次发送包后,可以看到是需要输入验证码了,这个时候WEB页面会弹出图片验证码

    这种情况下不要试图改状态码,code是根据后端返回的状态决定的,改code只能达到安慰自己的效果,我们可以排除法

正常情况下原登录页中没有图片验证码,几次过后出现了验证码机制判断机制: IP、手机号、cookie、session、自定义参数这个时候可以利用排除法进行测试,因为突然触发肯定会有先决条件

    经过我的测试,我直接将cookie里面的内容全部删除,又可以继续发送验证码,并且没有限制,具体是cookie里的哪一条没有去细分

大概运行流程为:cookie(某一条)->查询数据库匹配字段->没有达到阈值              ->不弹出验证码->达到阈值->弹出图片验证码这只是想象一下,可以参考DVWA中的暴力破解模块

    删除cookie中参数后,发送短信验证码没有限制,纵向短信+1

    再来说一下原本就有验证码的,一般情况下分为本地和第三方,本地的是创建一个验证码框,一般情况下可能和session、cookie或自定义参数有关,但是也可能是前端触发,后端生成一组数字,然后生成图片,发送至前端,前端输入数字,后端判定校验,和包内参数无关

    以一个网站为例,登录页面有一图片验证码框,点击图片会刷新,发送一个包

    可以看到是以当前时间进行生成一组数字,返回一张图片,然后去进行比对

    这种情况下可以用插件去识别,或者尝试绕过,绕过方法不再过多叙述,然后还有一种是三方,最常见的就是极验,这种一般都是跟前端携带参数的

    这种的是根据三方给的API去看的,具体方法可以看官方给的API以及当时遇到的现状,因为我清晰的记得,之前一个用极验的网站,应该是没有配置好,伪造包中的参数就可以绕过

敏感信息泄露一

    第一个信息泄露比较简单,在某个子站下,有一个config.properties文件泄露,这里我用的5w字典让灯塔跑的,还算比较全面

    第一块泄露了某平台的token,第二块泄露了邮箱的账号密码

    其它就是平台以及第三方平台的key和token等,数据比较多,就不发出了

敏感信息泄露二

    登录进平台,它的个人信息值存放进了自定义的一个参数Token中,这个Token用的jwt编码,大概存放了这些

    本来想着越权,因为平台有商家信息,抓包可以得到json格式的userid,但是clientuuid和uuid是唯一的,这个没办法绕过,所以这一步的越权没找到规律,暂时搁置

    然后getInformation接口中可以看商家信息,POST传参是userid,遍历后大概可以看到商家的地址,GPS定位经纬度、手机号、姓名等,数据大概几十万吧

充值漏洞一

    小程序custer.target.com中有开通会员功能,会员有专享福利

    和WEB端一样,不同的是这里所有传参返回都用了base64编码,以及比WEB端增加了一些功能

    再看开通会员页面,这里选好套餐以后,看到一共是四万两千九左右,我们这里抓包为是base64编码,直接编辑一下,参数改为0.01,将修改后的base64编码替换掉原来的数据包,他这里生成了订单号,但是没有把金额和订单号做强制绑定以及二次校验

0x03 结语

    根据本地资产搜集,拿到api地址下的config配置文件,泄露到邮箱账号密码,以及各第三方平台token,key等,其次在业务网站,某接口下,遍历infoid拿到用户不等身份信息,在业务小程序,开通会员处,经过替换数据编码后,可以一分购

https://www.wjx.cn/vm/YBVYmDY.aspx

如果你是一个长期主义者,欢迎加入我的知识星球,我们一起往前走,每日都会更新,精细化运营,微信识别二维码付费即可加入,如不满意,72 小时内可在 App 内无条件自助退款
前面有同学问我有没优惠券,这里发放100张100元的优惠券,用完今年不再发放

往期回顾

dom-xss精选文章

年度精选文章

Nuclei权威指南-如何躺赚

漏洞赏金猎人系列-如何测试设置功能IV

漏洞赏金猎人系列-如何测试注册功能以及相关Tips


文章来源: https://mp.weixin.qq.com/s?__biz=MzIzMTIzNTM0MA==&mid=2247494619&idx=1&sn=fc96fa0e3667e78735394f8b01a1e3bf&chksm=e8a5e1b8dfd268aefe538dee8805b57648a8b1f59dc3e98d7b1eab324d102f1b13d94be6117d&scene=58&subscene=0#rd
如有侵权请联系:admin#unsafe.sh