0x01:前言
记一次关于edusrc中证书大学的小程序挖掘过程。
在各路大师傅惨无人道的证书站挖掘,像是我这只小菜鸡在web方面很难再摸到漏洞,内网也莫得账号,无奈只能转战小程序。
0x02:准备
夜神模拟器 6.6.1.1 Andorid5版本
Burpsuite 证书
Node+npm环境
0x03:实战
先确定一个证书站的目标,从小程序名称下的归属可以知道此小程序确实属于目标资产,同时在交互包中也可以发现是对其子域进行交互。
先是对其进行一波排查,发现有功能点展示但需要进行登录。爆破一波并没有发现存在弱口令用户,更换方式。
尝试对 小程序 进行反编译(在对wxapkg文件进行获取的时候,可以先删除其目录下的所有小程序包,然后再去访问想要测试的小程序,会生成两个数据包都要拿出来),例如下图_2100734759_11.wxapkg是需要进行编译的包
\#node ../wxappUnpacker-master/wuWxapkg.js _459201295_105.wxapkg //开始编译
编译成功会获得一些源码,可以尝试找账号密码,且还可以对其进行一系列行为溯源
在翻js的时候,翻到一个js文件,打开发现是一个修改密码的行为
发现有个不想是路径的地址,同时还指明URL,猜测可能是某个接口,尝试利用其的POST方式对其进行发包探测,后来发现不管怎么样都是返回 {success:200}
正当一筹莫展的时候,把js往下滑动,看到了用户信息加载的字样,应该也是基于接口访问获取个人信息
拼接访问:http://xxxx.edu.cn/xxxx/user/...
可以发现password的值为undefined,起先我弱智的用空密码登录admin账号,发现密码错误,又带入undefined这个字符串进行登录。。。
重新屡一下思路,照理来讲应该password字段应该是有密码的。回顾操作有没有可能是我上一步的POST数据的那个功能点是修改密码,毕竟我没传任何数据。
对上个接口进行POST传参fuzz,fuzz完好几个字典发现都是没有成功修改密码。
后来想起来wxml像是一个前端页面,正好有个mpassworx.wxml,看看里面的传参值是什么,newp为新密码,confirmp是确认新密码。再对其接口进行构造修改密码
传参值为md5加密之后的数据(为什么知道是md5呢,因为在个人信息返回的那个点,我对其进行了工号和学号的fuzz,发现其中用户密码都是经过md5加密的)
发现从原来undefined,变成了我传入的md5值,成功修改密码
利用修改之后的账号密码,成功登陆系统
同时可以对会议室实验室啥的进行管理,开个门,关个门,开个空调,开个电风扇等等
0x04 实战案例二:
南神永远滴神!!!
依旧还是一个证书站的小程序
先用自己的手机号注册一个账号,*Tips:当用自己手机注册一个手机号的时候先会获得一个验证码可以用来注册,同时当准备利用忘记密码功能点来获取密码的时候,验证码不会再发送,后来发现注册获得的验证码可以被多次使用,也不会过期*
生成0001 - 9999的字典轻而易举的爆破出来
如何获得管理员的手机号捏~,先利用自建注册的账号,进系统内对各个功能点进行探测,发现有个数据包中带有userID值,尝试越权
发现当访问其他userID时会提示登录超时,看到有个token验证,尝试删除再访问其他userID。发现当userID的值存在时会回显数据,没有则会返回空。
对userID直接fuzz遍历获得linkMobile,就是其手机号。
成功获取一些管理员用户手机,直接在忘记密码处4位纯数字爆破修改密码。
0x05:后言
涉及漏洞均已提交edusrc。
网络如山勤思为径,信息似海安全作舟。
多一分网络防护技能,多一份信息安全保障。
本文涉及相关实验:使用burp进行暴力破解 (通过该实验掌握burp的配置方法和相关模块的使用方法,对一个虚拟网站使用burp进行暴力破解来使网站建设者从攻击者的角度去分析和避免问题,以此加强网站安全。)
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。