浅谈微信小程序渗透

这篇具有很好参考价值的文章主要介绍了浅谈微信小程序渗透。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

奇安信攻防社区-浅谈微信小程序渗透

0x0前言

最近好多小伙伴都在问怎么对微信小程序进行渗透,遂写篇文章抛砖引玉。

0x1环境准备

我使用的是夜神模拟器配合 burpsuite 进行抓包。夜神模拟器我使用的是6.6.1.1的版本,算是很老的版本了,内设系统为Android5.0。新的版本中安卓似乎都是7.0以上了,抓取 HTTPS 包会比较麻烦,所以我就一直没有换版本。如果有需要的朋友可以自取,后面会打包云盘在文章底部。

首先我们需要设置好抓包环境,先通过ipconfig查看我们当前 ip,这里我用的是以太网,也就是插着网线;如果是连着 WIFI,则找对应的即可

浅谈微信小程序渗透

在 burpsuite 添加上,这里我设置端口为8888,可以按照自己需求更改

浅谈微信小程序渗透

打开夜神模拟器,在 WLAN 选择手动代理,并设置代理地址和代理端口,和 burpsuite 对应

浅谈微信小程序渗透

保存后,打开浏览器访问ip:port,这里的话为192.168.1.102:8888,点击CA Certificate下载证书

浅谈微信小程序渗透

打开文件管理器,在sdcard->Download目录中可以看到下载下来的证书

浅谈微信小程序渗透

cacert.der更名为cacert.cer,也就是将后缀改成cer,然后到手机设置->安全中,选择从 SD 卡安装

浅谈微信小程序渗透

安装证书

浅谈微信小程序渗透

测试一下,浏览器访问百度,burpsuite 能正常抓包说明已经设置环境成功

浅谈微信小程序渗透

0x2反编译微信小程序代码

我们在模拟器里登录微信,然后随便选择一个微信小程序打开

浅谈微信小程序渗透

打开文件管理器,在data/data/com.tencent.mm/MicroMsg会生成一个md5加密命名的文件夹(如果打开微信小程序过多,同时有多个文件夹不容易识别的情况,可以选择把MicroMsg文件夹所有内容删除掉,再去重新打开微信小程序,就会得到唯一一个MD5加密命名的文件夹啦)

浅谈微信小程序渗透

在该文件夹下的appbrand/pkg目录下找到.wxapkg后缀结尾的文件,其中只有几MB大小的为刚刚打开的小程序的文件

浅谈微信小程序渗透

点击勾选之后,来到根目录下的mnt/shared/App目录,打开右上角三个.的功能菜单选择粘贴选择项,将文件复制到该文件夹

浅谈微信小程序渗透

这里的文件夹就是电脑共享的文件夹,点击打开电脑文件夹

浅谈微信小程序渗透

可以找到小程序的文件

浅谈微信小程序渗透

这里推荐有 GUI 界面的反编译工具:Releases · ezshine/wxapkg-convertor · GitHub
直接将文件鼠标拖拽到 GUI 界面即可开始反编译,在拖入文件的当前目录得到反编译生成的文件夹

浅谈微信小程序渗透

然后就可以开始舒服的看看 js 代码啦

浅谈微信小程序渗透

0x3反编译源码代码审计

举例某小程序审计,在登录界面爆破无关之后,直接反编译拖源码审计一下,反编译出来的源码,我们着重看 js 文件及其配置文件即可。第一想法就是先找一些接口,尝试是否有未授权之类的漏洞,下面就是找到的一处路由user/getUserInfoByUsername

浅谈微信小程序渗透

可以看到发送数据类型为 json 格式,并且参数为usernameschool,于是尝试构造请求发送

浅谈微信小程序渗透

成功获取系统管理员详细信息,其中包括关键的密码。获取到 md5 加密形式的密码密文后,本来还想去 cmd5 去解一下, 但是接下来注意到一个登录路由user/loginByUsernameAndPassword

浅谈微信小程序渗透

从源码中都看得出来就是通过账号密码去登录,刚刚未授权得到的密码存储为 md5 加密形式,想来登录应该也是进行 md5 加密的形式,所以直接发送加密形式的密码即可,构造请求发送

浅谈微信小程序渗透

验证登录成功。这类常常出现未授权漏洞的路由命名方式大抵都是

xxxByXXXId
xxxByUsername
xxxbyphone
......

审计的时候我们可以做一个规则去全局搜索源码匹配这类命名方式的路由

0x4其他类型漏洞案例

下面举例其他类型的漏洞审计案例,这里目的是为了说明小程序有哪些漏洞可以挖

信息泄露

反编译出来的源码泄露登录账号密码,这里是因为在 js 文件中写死了账号密码,只做了前端验证导致的漏洞,从下面贴的两个小程序源码中可以看到

浅谈微信小程序渗透

浅谈微信小程序渗透

在时间稍稍往前的小程序中,还经常会有泄露小程序secret的情况,简直就是把打开保险箱的密码放在你面前

未授权接口

仔细翻找 js 文件能找到不少未鉴权的 api 接口(可以着重注意配置文件,不少配置文件都会写上路由列表),例如该 api 返回大量用户敏感信息

浅谈微信小程序渗透

测试未授权时,有一些小技巧:例如当在 GET 或者 POST 传参中有token等鉴权参数,例如

GET /api/GetUserInfo?id=xxx&token=xxxx HTTP/1.1

可以尝试将token参数的值置空或者删除token参数,往往能 bypass 鉴权,我已经遇见好多次这种情况了。举例一个案例:
该微信小程序可以注册用户,注册账号登录之后抓包,我的账号数据包如下

GET /wx/queryOrders?orderState=&serviceUid=&repairUid=6864&pageNum=1&pageSize=20&uid=6864&token=9938C366-XXXX-XXXX-XXXX-9C7709D8C9E8

当我尝试将uid参数改成其他用户时,返回权限不足,尝试将token删除

GET /wx/queryOrders?orderState=&serviceUid=&pageNum=1&pageSize=200&uid=2000

浅谈微信小程序渗透

除此之外,测试一些参数,比如手机号,不知道该系统用户手机号时,可以试试像上面说的将其置空,往往运气好能碰上系统后端查询使用的模糊查询为空时返回所有信息,下面贴图的案例就是将手机号参数置空后,成功获取到账号详细信息

浅谈微信小程序渗透

越权漏洞

下面案例举例一个通过 Cookie 中的参数进行鉴权的漏洞,可以通过修改NetId中的值来遍历获取用户信息。此类漏洞的挖掘在鉴权处的源码,审计时可以着重审计其验证流程

浅谈微信小程序渗透

当时也是依靠这个漏洞获取到 VPN 账号密码,得以进入内网渗透

逻辑漏洞

使用 burpsuite 抓取管理员登录数据包,获取返回包

浅谈微信小程序渗透

该处在login.js文件登录判断条件中,源码判断返回为 0 时登录成功,所以我们将返回包从 1 改成 0 即可登录成功。

浅谈微信小程序渗透

还有 任意密码重置 ,该处漏洞倒也是在黑盒中无意发现,在修改密码处需要验证对应账号接收到的短信验证码。但怀着尝试的心态通过 buspsuite 抓包绕过 js 限制,随意填写验证码便可以重置任意用户密码,不细心就会很容易忽视的点

浅谈微信小程序渗透

appid和secret的利用

当时测试数据的时候,发现添加字符%%会导致其后端报错,返回appidsecret

浅谈微信小程序渗透

获取到的appid和secret可以到微信的官方接口去自由生成微信小程序的命脉AccessToken

浅谈微信小程序渗透

拿到 AccessToken,相当于可以控制整个小程序了,并且 AccessToken 微信每天只能生成20次,不断请求满20次的话可以使小程序崩溃无法使用。

浅谈微信小程序渗透

其次利用AccessToken可以执行相当多的其他操作,见微信官方文档,这里就不画蛇添足了。

工具自取链接:

链接:https://pan.baidu.com/s/1vMVvmm2n2wyr3vhzp91iqA 
提取码:jpho

0x5总结

总的来说,微信小程序的渗透我觉得最重要的还是仔细审计一下反编译得到的源码,常常会有意想不到的惊喜噢~文章来源地址https://www.toymoban.com/news/detail-484359.html

到了这里,关于浅谈微信小程序渗透的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 社区团购微信小程序的设计与实现

    目录 1 系统简介 2 系统相关技术 2.1微信开发者工具 2.2前端开发技术 2.3后端开发技术 2.4数据库技术 3 需求分析 3.1 功能模块 3.1.1 系统功能模块模型 3.2 系统核心业务  3.2.1 前台功能 3.2.2 后台系统管理员功能 3.3 系统性能需求 3.4 可行性分析 3.4.1 经济可行性 3.4.2 技术可行性

    2024年02月04日
    浏览(36)
  • 微信小程序渗透测试指北(附案例)

    ❝ 本文分为三部分,第一部分涵盖了微信小程序渗透前置知识,第二部分讲述小程序渗透常用方法,第三部分讲述小程序实践挖掘技巧,点击**「阅读原文」**体验更佳。 (本文首发博客:https://sanshiok.com/archive/14.html) ❞ 为什么要使用小程序? 小程序相较于APP来说: 对用户

    2024年04月11日
    浏览(21)
  • 基于微信小程序的社区养老服务系统

    随着计算机技术的成熟,互联网的建立,如今,PC平台上有许多关于社区养老服务方面的应用程序,但由于使用时间和地点上的限制,用户在使用上存在着种种不方便,而开发一款基于微信小程序的社区养老服务系统,能够有效地解决这个问题。 本文主要介绍了基于微信小程

    2024年03月09日
    浏览(80)
  • 微信小程序社区户口管理的系统设计与实现

    摘要 我国的户口管理制度由来已久,我国对于合法居民在新生儿的出生、户口的落地、迁移以及户口的注销上都有着详细的管理条例进行约束。通过户口的管理可以更好地对我国的居民人数进行有效的内容统计,在进行人口普查的过程中也能够实现更好的、更加精准的数据统

    2024年02月11日
    浏览(35)
  • 基于微信小程序的智能社区服务小程序,附源码

    博主介绍:✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w+、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅 文末获取源码联系 🍅 👇🏻 精彩专栏推荐订阅👇🏻 不然下次找不到哟 2022-2024年最全的计算机软件毕业设计选

    2024年02月19日
    浏览(33)
  • 【计算机毕业设计】基于微信小程序的社区养老服务系统 社区养老服务小程序

    毕设帮助、源码交流、技术解答,见文末 现如今随着社会经济的快速发展,社会福利水平不断提高,不少老人也在逐渐养成养老的习惯。为了减轻老人的养老负担,社区养老服务系统也应运而生,借助移动互联网技术,为居家老人提供专业、规范、优质、便捷的全方位“一站式”

    2024年02月05日
    浏览(35)
  • 基于微信小程序的社区团购小程序设计与实现

    💗博主介绍:✌全网粉丝10W+,CSDN全栈领域优质创作者,博客之星、掘金/华为云/阿里云等平台优质作者。 👇🏻 精彩专栏 推荐订阅👇🏻 计算机毕设精品项目案例(持续更新) 🌟 文末获取源码+数据库+文档 🌟 感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文

    2024年02月03日
    浏览(40)
  • 基于微信小程序的社区卫生服务管理系统

    基于微信小程序的社区卫生服务管理系统 摘  要 随着当今社会的快速发展,我们已进入互联互通的信息时代。越来越多人不仅追求物质生活的保障,更注重于 个人身体健身,定期参与医疗诊断体检等活动。 社区卫生服务管理系统是以计算机网络为平台,利用互联网和软件

    2024年02月21日
    浏览(50)
  • python+Django社区疫情防控系统 uniapp微信小程序

    随着信息技术和网络技术的飞速发展,人类已进入全新信息化时代,传统管理技术已无法高效,便捷地管理信息。为了迎合时代需求,优化管理效率,各种各样的管理系统应运而生,各行各业相继进入信息管理时代,疫情监控系统小程序就是信息时代变革中的产物之一。  开

    2024年02月09日
    浏览(34)
  • ssm基于微信小程序的社区物业信息管理系统小程序

    专业技术开发,收藏关注不迷路 本设计主要实现集人性化、高效率、便捷等优点于一身的小程序社区物业信息管理系统,完成首页、个人资料、公共管理(轮播图、社区公告)用户管理(管理员、居民用户)信息管理(社区资讯、资讯分类)缴费信息、报修信息、投诉建议等

    2024年01月20日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包