记某大学智慧云平台存在弱口令爆破/水平越权信息泄露/Wx_SessionKey篡改 任意用户登录漏洞

[TOC]

0x1 前言

本篇文章是记录最近给一所大学做渗透测试时该学校存在的漏洞(目前已经修复)。我是先找该学校的微信小程序的资产,因为各位佬们也知道,微信小程序相对于web应用服务端来讲维护较少,所有漏洞存在多,好挖点。
嘿嘿嘿,下面就来讲讲我是怎么从这个小程序端渗透到web应用端。

0x2 知识点讲解

微信小程序的session_key有什么用?

官方文档说是用session_key来生成登录态,让前端每次请求的时候加上登录态来请求接口。
session_key 功能说明:

  1. 微信客户端通过wx.getUserInfo()获取用户的信息
  2. 后台有时候也需要获取微信客户端的用户信息,因此,就需要利用session_key这个秘钥来从微信平台中获取
  3. 后台如果想要获取用户的信息,就一定要知道session_key,如果session_key 过期,就需要客户端完成一次登录的流程

图文参考:

0x3 渗透测试

我是有目的性的针对这个大学的小程序进行渗透测试的,所以直接在微信小程序检索该大学,然后挨个进行测试,发现该学校有智慧云平台(这个我还是蛮感兴趣的,因为之前我挖到蛮多的这类平台的漏洞)瞬间就比较兴奋。

一、弱口令爆破

直接进入该小程序,然后通过bp抓包,一般的思路就是拿到小程序的数据包,然后进行访问下该host,尝试下是否存在弱口令

一访问该host,然后跳转网站也没,中间是这个动态,一看就是若依系统。

看到若依,那么就得优先尝试下弱口令了

admin:admin123
ry:admin123

但是这个web端是需要使用手机号和密码进行登录的,所以平常使用的那两个弱口令也就没用了,但是经常碰若依系统的就知道,进入后台以后,里面一般会经常留有一个测试账号和测试手机号,可以给师傅们看看若依系统的后台用户管理界面:

可以看到该测试账号使用的手机号,都是很弱的也就是容易爆破的手机号。

下面我们回到小程序端,然后可以看到这里存在用户登录的地方,且比webduan爆破更加方便,没用验证码什么东西。
然后抓包,通过bp的爆破功能模块进行尝试爆破他的用户名,密码我们这里直接使用123456,因为这种学校网站存在这样的123456的弱口令很正常,目前要做的就是爆破用户名也就是手机号了

下面是我自己准备的常用的测试手机号,然后导入bp中进行爆破。
比如师傅们也是可以收集一些常用的测试手机号,有需要的可以私信我,可以给大家发一下。

可以看到00000000000:123456爆破成功了,且成功登录进了web页面端

二、越权漏洞

在这里进行测试,发现getteachers参数,这个应该可有查到很多老师的信息的(这里就是查询的性王的老师信息)

这里也可以尝试删除下这个参数,就可以获取所有老师的信息了

这里可以看到我们开始爆破出来的测试账号

我们开始知道了账号就是手机号,那么我们目前获取到了那多的手机号,我们就可以尝试获取有权限的账户了
尝试发现这个性王的老师,应该是学校管理员账号,可以看到全年级的考勤信息

三、Wx_SessionKey篡改 任意用户登录

Wx_SessionKey_crypt工具下载链接:

https://github.com/mrknow001/BurpAppletPentester

收集该数据包中的SessionKey、iv以及加密字段三个部分,然后再利用Wx_SessionKey_crypt这个工具,我们就可以通过篡改手机号,从而可以任意用户登录危害漏洞。

可以利用这个Wx_SessionKey_crypt工具,进行解密,可以看到确实是我自己的手机号

我这里前面进行信息收集到了好多个老师的手机号,一个17开头的朱老师的手机号开始尝试123456弱口令没有成功登录后台,
那么现在尝试把Wx_SessionKey_crypt里面我的手机号改成17开头朱老师的手机号,然后再利用上面的工具进行加密,再替换上面bp里面的数据包,就可以成功登录了


到目前为止,任意用户登录也就复现完毕了!

0x4 总结

这次的渗透测试来讲还是很有收获的,特别是第三个Wx_SessionKey篡改 任意用户登录,大家可以去小程序尝试下,大家首先得找到SessionKey、iv以及加密字段三个部分,然后才可以利用这个工具进行篡改,然后任意用户登录。然后其次就是大家如果第一次挖漏洞还是渗透测试什么的,一定不要小瞧弱口令,因为只有登录进去了,里面后台的很多功能点你才有机会进行测试。
最后希望这篇文章对漏洞挖掘和渗透测试师傅们有帮助!!!

8 条评论
某人
表情
可输入 255