「渗透笔记」对某小程序的一次渗透记录

一、前言

最近报了一个驾校,然后在报名回家以后,就开始疯狂的挂科目一的时长,突然想到这个小程序会不会存在漏洞呢,如果发现了,还可以去CNVD(https://www.cnvd.org.cn/)报一下,一是拿个积分,二是间接修复一下漏洞,毕竟自己的所有信息都在这个小程序里,不想自己有一天因为它存在什么漏洞,导致自己的信息被人偷走,所以本着保护自己的原则,我开始了一次【试探】。

具体是哪个小程序,这里我就不说啦,漏洞已经报到CNVD了,写本文只是做一个分享。

在这里插入图片描述

二、渗透过程

跳过所有的信息收集,因为我现在的目标是直接找漏洞,目前的一些基础信息对于我来说还不是很重要。

1、抓包试试

因为小程序也是属于web端的玩意儿,所以正常思路就是先抓一下数据包看一下都传了一些什么东西出去,又有什么东西传了回来,主要寻找以下几方面的内容:

  • 未鉴权的页面。
  • 鉴权了,但是可以水平越权的页面。
  • 鉴权了,但是可以垂直越权的页面。
  • 页面的源代码或者响应中是否存在什么敏感信息。

(1)开始抓包

  • 操作平台:iPhone、微信
  • 抓包工具:Stream【自行到苹果商店下载就可以】

如果使用安卓手机的话,建议使用Android版本低的手机,因为android版本最新的好像是不让安装第三方https证书了,那就抓不到https协议下的数据了。

抓包过程:

  • 打开抓包工具,点击开始抓包。
  • 返回微信,打开那个小程序。
  • 小程序加载完成后,进行登录或者操作。
  • 返回抓包工具,点击停止抓包

在这里插入图片描述

(2)分析数据

如上图所示,我登录后,抓包工具一共抓到了16个数据包,然后就可以开始对这些数据包进行逐个分析了,看看是否有我们想要的内容。

数据包一:
小程序发出去的请求内容

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"}

小程序收回来的请求内容:

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国家信息安全漏洞共享平台,这样厂商还能修复一下。
在这里插入图片描述

还有很多一眼就能看出来的漏洞,我就没再去尝试,我选择了适可而止。

三、小程序渗透思路

  1. 常规思路下,第一步肯定就是抓各个连接,分析连接的鉴权情况啦。
  2. 逆向解压小程序,分析源代码中存在的敏感信息,我以前解压某个小程序后,在里面发现了管理后台和账号密码,都是以注释的形式存在的,敲代码的人可能习惯不太好。
  3. 利用网络空间测绘,去找同IP下的其余端口,看弱口令,如果找到弱口令,那么。。尝试文件上传,或者直接尝试SQL注入。
  4. 尝试各种web漏洞、主机漏洞。

其余的自己去思考吧,我也不好写太多内容了,本文制作思路分享。

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-26 09:42:03       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-26 09:42:03       106 阅读
  3. 在Django里面运行非项目文件

    2024-03-26 09:42:03       87 阅读
  4. Python语言-面向对象

    2024-03-26 09:42:03       96 阅读

热门阅读

  1. Day8.

    2024-03-26 09:42:03       39 阅读
  2. 华为OD技术面算法题整理

    2024-03-26 09:42:03       41 阅读
  3. 大模型日报2024-03-25

    2024-03-26 09:42:03       48 阅读
  4. 每个字符最多出现两次的最长子字符串(c++实现)

    2024-03-26 09:42:03       48 阅读
  5. 基于深度学习的图像分类方法

    2024-03-26 09:42:03       44 阅读
  6. Android SO加固技术及其破解方法探讨

    2024-03-26 09:42:03       39 阅读
  7. Android中View和ViewGroup有什么区别和联系

    2024-03-26 09:42:03       40 阅读
  8. Git本地更新仓库改动

    2024-03-26 09:42:03       43 阅读
  9. 取消uniapp的scroll-view滚动条

    2024-03-26 09:42:03       44 阅读
  10. 二进制王国【蓝桥杯算法双周赛】

    2024-03-26 09:42:03       43 阅读
  11. 鲁棒的设计

    2024-03-26 09:42:03       39 阅读