文章目录
一、前言
最近报了一个驾校,然后在报名回家以后,就开始疯狂的挂科目一的时长,突然想到这个小程序会不会存在漏洞呢,如果发现了,还可以去CNVD(https://www.cnvd.org.cn/)报一下,一是拿个积分,二是间接修复一下漏洞,毕竟自己的所有信息都在这个小程序里,不想自己有一天因为它存在什么漏洞,导致自己的信息被人偷走,所以本着保护自己的原则,我开始了一次【试探】。
具体是哪个小程序,这里我就不说啦,漏洞已经报到CNVD了,写本文只是做一个分享。
二、渗透过程
跳过所有的信息收集,因为我现在的目标是直接找漏洞,目前的一些基础信息对于我来说还不是很重要。
1、抓包试试
因为小程序也是属于web端的玩意儿,所以正常思路就是先抓一下数据包看一下都传了一些什么东西出去,又有什么东西传了回来,主要寻找以下几方面的内容:
- 未鉴权的页面。
- 鉴权了,但是可以水平越权的页面。
- 鉴权了,但是可以垂直越权的页面。
- 页面的源代码或者响应中是否存在什么敏感信息。
(1)开始抓包
- 操作平台:iPhone、微信
- 抓包工具:Stream【自行到苹果商店下载就可以】
如果使用安卓手机的话,建议使用Android版本低的手机,因为android版本最新的好像是不让安装第三方https证书了,那就抓不到https协议下的数据了。
抓包过程:
- 打开抓包工具,点击开始抓包。
- 返回微信,打开那个小程序。
- 小程序加载完成后,进行登录或者操作。
- 返回抓包工具,点击停止抓包
(2)分析数据
如上图所示,我登录后,抓包工具一共抓到了16个数据包,然后就可以开始对这些数据包进行逐个分析了,看看是否有我们想要的内容。
数据包一:
小程序发出去的请求内容
bash
POST /renren-fast/app/studentCheck HTTP/1.1
Host: *******.***********.com 【此处我脱敏了】
Accept: application/json, text/plain, */*
Accept-Language: zh-CN,zh-Hans;q=0.9
Accept-Encoding: gzip, deflate, br
token: *******.*********** 【此处我脱敏了】
Content-Type: application/json
Origin: https://*******.***********.com 【此处我脱敏了】
User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 15_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.44(0x18002c2f) NetType/WIFI Language/zh_CN miniProgram/wxebb61517c7fb6b7a
Connection: keep-alive
Referer: https://*******.***********.com 【此处我脱敏了】
Content-Length: 225
Cookie: appNo=1; CategoryId=102; CategoryName=%E5%B0%8F%E8%BD%A6(C1/C2/C3); CourseId=103;
{"appNo":"APP01","organizationNo":"C20X8LS06ZH","idcard":"eyJUeXBlIjoiSnd0IiwidHlwIjoiSldUIiwiYWxnIjoiSFMyNTYifQ.eyJwYXlsb2FkIjoiMTUwNDMwMTk5NDA2MjIxMDc4IiwiZXhwIjoxNzExMjQ1NzIyfQ.jngt2mnHozJ3WBGioCUheS7mzuOtTPb2992opODe6-w"}
小程序收回来的请求内容:
bash
HTTP/1.1 200
Server: nginx/1.14.1
Date: Sat, 23 Mar 2024 14:02:03 GMT
Content-Type: application/json
Transfer-Encoding: chunked
Connection: keep-alive
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Access-Control-Allow-Origin: https://*******.***********.com 【此处我脱敏了】
Access-Control-Allow-Credentials: true
{"code":0,"msg":"success","data":{"data":[{"page":null,"limit":null,"orderField":null,"order":null,"asc":null,"basePkId":学生ID脱敏,"studentNo":"学生号码脱敏","studentName":"学生姓名脱敏","sex":"学生性别脱敏","certType":"1","certNum":"身份证号脱敏","mobile":"00000000000脱敏","provinceCode":"210000","cityCode":"","districtsCode":"","businessType":"0","addr":"","enterpriseId":950,"organizationId":40,.....................}}
上面返回来的信息过于敏感,我在这里把该删除的都删除了,就按照这样的过程,我最后抓到了一个水平越权连接,可以提交学生的ID,然后获取所有学生的详细个人信息,其中包括姓名、手机号、身份证号、个人照片、考试信息等等。
(3)漏洞上报
发现漏洞后,我想到如果这个漏洞被别人找到后,可能会给这个软件拖库了,那我的各种信息就不知道被谁卖的就卖出去了,心里比较膈应这个,所以我选择上报给CNVD国家信息安全漏洞共享平台,这样厂商还能修复一下。
还有很多一眼就能看出来的漏洞,我就没再去尝试,我选择了适可而止。
三、小程序渗透思路
- 常规思路下,第一步肯定就是抓各个连接,分析连接的鉴权情况啦。
- 逆向解压小程序,分析源代码中存在的敏感信息,我以前解压某个小程序后,在里面发现了管理后台和账号密码,都是以注释的形式存在的,敲代码的人可能习惯不太好。
- 利用网络空间测绘,去找同IP下的其余端口,看弱口令,如果找到弱口令,那么。。尝试文件上传,或者直接尝试SQL注入。
- 尝试各种web漏洞、主机漏洞。
其余的自己去思考吧,我也不好写太多内容了,本文制作思路分享。