Web实战零基础微信小程序逆向

整个小程序框架系统分为两部分:逻辑层(AppService)和视图层(View)。小程序提供了自己的视图层描述语言WXML和WXSS,以及基于JavaScript的逻辑层框架,并在视图层与逻辑层间提供了数据传输和事件系统,让开发者能够专注于数据与逻辑。

逻辑层将数据进行处理后发送给视图层,同时接受视图层的事件反馈。

开发者写的所有代码最终将会打包成一份JavaScript文件,并在小程序启动的时候运行,直到小程序销毁。这一行为类似ServiceWorker,所以逻辑层也称之为AppService。

注意:小程序框架的逻辑层并非运行在浏览器中,因此JavaScript在web中一些能力都无法使用,如window,document等。

框架的视图层由WXML与WXSS编写,由组件来进行展示。

将逻辑层的数据反映成视图,同时将视图层的事件发送给逻辑层。

WXML(WeiXinMarkuplanguage)用于描述页面的结构。

WXS(WeiXinScript)是小程序的一套脚本语言,结合WXML,可以构建出页面的结构。

WXSS(WeiXinStyleSheet)用于描述页面的样式。

组件(Component)是视图的基本组成单元。

小程序包含一个描述整体程序的app和多个描述各自页面的page。

一个小程序主体部分由三个文件组成,必须放在项目的根目录,如下:

一个小程序页面由四个文件组成,分别是:

注意:为了方便开发者减少配置项,描述页面的四个文件必须具有相同的路径与文件名。

从上述的架构图、文件组成部分来看,重点分析的就是小程序的逻辑层。而逻辑层主要的组成部分是由app.js、app.json、js文件、json配置文件等组成,因此测试过程中主要分析的对象就是这一些。

windows

其中的文件名为__APP__.wxapkg,为加密后的文件。

加密方法如下:

这里使用的解密工具为代码果所编写UnpackMiniApp.exe,用法为点击“选择加密小程序包”,选中待解密的__APP__.wxapkg,将会在UnpackMiniApp.exe当前目录的wxpack文件夹中生成解密后的文件。

在解密之后,使用010Editor打开该文件,可以看出,wxapkg包由三个部分组成,分别是头部段、索引段、数据段。

首先为4字节,为包内文件的数量,如“0000005F”代表一共有95个文件,然后是包内文件各自的信息,例:“00000016”代表文件名称的长度为22个字节,“2F72656F......2E706E67”为带存放路径的文件名称,“0000117C”对应文件在小程序包中的具体偏移位置,“000101F7“对应文件在小程序包中的数据长度。

数据段为存储的文件内容,可通过索引段的信息进行一一对应。

通过索引段与数据段,我们已经可以还原出一个大体的文件结构

笔者对各自文件的还原不再赘述,在此推荐使用wxappUnpacker与wxapkgconvertor,二者均可以直接对解密后的wxapkg包进行反编译,直接还原出原项目的文件结构。

wxappUnpacker的使用命令为:

wxapkgconvertor的使用更为便携,将待反编译的wxapkg包直接拖入程序窗口中,即可在小程序包位置的同目录下获得同名的小程序项目文件夹。

分别解密,反编译后,拼合到同一目录下。

SQL注入是指Web程序代码中对于用户提交的参数未做有效过滤就直接拼接到SQL语句中执行,导致参数中的特殊字符打破了SQL语句原有逻辑,黑客可以利用该漏洞执行任意SQL语句。

通过proxifier的流量代理与BurpSuite的抓包,我们可以针对小程序运行时的功能点进行测试。

proxifier配置:

设置ip为127.0.0.1,端口自定义的HTTPS协议代理服务器

添加规则:程序“wechatappex.exe”,动作为刚才设置的代理服务器

BurpSuite配置:

配置代理服务器,端口为刚才设置的自定义端口,地址为127.0.0.1

通过对小程序功能点进行SQL注入测试,成功返回数据库用户名。

针对小程序的代码进行审计,发现一处回连域名,访问发现为管理后台。

使用用户名:admin密码:123456成功登陆后台,获取大量信息。

按错误提示找到文件@babel/runtime/helpers/typeof.js

将所有内容删除,并替换成

小程序开发者在开发环节中必须基于以下原则:

互不信任原则,不要信任用户提交的数据,包括第三方系统提供的数据,必要的数据校验必须放在后台校验。

最小权限原则,代码、模块等只拥有可以完成任务的最小权限,不赋予不必要的权限。

禁止明文保存用户敏感数据。

小程序代码(不包括云函数代码)跟传统Web应用的前端代码类似,可被外部获取及进行反混淆,重要业务逻辑应放在后台代码或云函数中进行。

THE END
1.C#小结:开发一个Web项目要用到的软件清单c#web开发6. PowerDesigner:一个用于数据库设计、数据架构建模、分析和管理的工具。 7.node.js:一个JS运行环境,用于前后端分离开发。 8. Postman:一个接口调试工具。 9. Redis/Memcache:两个缓存工具。 10. SonarQube:一个用于提升代码质量的工具。 11.Jenkins:一个开源的持续集成/持续部署工具,用于自动化构建、测试、部https://blog.csdn.net/m0_67412019/article/details/133386966
2.ASP.NETCore适用于.NET的开源Web框架.NET 是一个开发人员平台,由工具、编程语言、库组成,用于构建许多不同类型的应用程序。 ASP.NET Core 通过专门用于生成 web 应用的工具和库扩展了.NET 开发人员平台。 更深入发掘: 什么是 ASP.NET Core? 了解ASP.NET Core 通过我们的教程、视频课程和文档,了解 ASP.NET Core 提供的所有功能。 https://asp.net/
3.万字干货!超全面的小程序设计指南优设网支付宝小程序设计规范:https://docs.alipay.com/mini/design 特点:在组件上采用了此前成熟的 Ant Design 设计,在开放 API 上则面向自身特色能力来封装,在框架方面采用开源的 React/webpack 等技术为基础,结合了支付宝自身的多年技术沉淀来实现。 量级:月活 7 亿 https://www.uisdc.com/mini-program-design-guide
4.我帮您打造微信小程序web可视化开发者工具是一款的可视化WebHTML我帮您打造微信小程序web可视化开发者工具是一款的可视化Web应用开发和运行平台。基于浏览器的集成开发环境,可视化和智能化的设计,能轻松完成身微信小程序和面向手机的移动应用开发;高效、稳定和可扩展的特点,使微信小程序的开发更快捷和简单。此系统DIY官网导出后https://github.com/LX0/diygw/
5.2023年推荐使用的59个超赞的Web开发工具我们对Web开发工具的看法 从表面上看,对Web开发工具进行分类似乎很简单。然而,即使潜入浅水区,也会出现一些模糊界限的考虑。 例如,考虑视频流服务是否算作开发工具。在泡沫中,可能不会。但是,如果您使用它来记录特定设计应用程序的屏幕,它会突然转变为独特的协作工具。 https://www.wbolt.com/web-development-tools.html
6.Grid++Report6.7.1.0含Demo模板例子免费报表设计开发工具多Grid++Report是一款同时支持C/S软件(桌面程序)与B/S软件(WEB程序)开发的报表工具,功能全面易学易用。C/S开发适用于VB.NET、C#、VB6、VB、VC、Delphi、C++Builder、QT与易语言等。B/S开发适用于ASP.NET(C# & VB.NET),PHP,JSP(JAVA)等,支持所有WEB服务器。开发C/S报表与B/S报表的编程接口、报表模板与报表https://www.iteye.com/resource/zjun2nd-12152705
7.使用electron开发桌面级小程序自动部署系统支持部署小程序开发者工具的坑,接下来我将此次开发过程的思考和问题进行总结,从多个角度来介绍本项目。 J.A.R.V.I.S是做什么的? 它是一个安装在Mac或Windows上的app程序,可以随时从Git上拉取最新代码选取分支和tag并自动打包构建不同环境上传至小程序后台的发布系统。 https://cloud.tencent.com/developer/article/1449147
8.软件工程专业培养方案(2022)4.2 能够基于软件工程专业知识,确定技术路线,设计可行的实验方案。 4.3 选用或搭建合适的实验环境,安全地开展实验,正确采集实验数据。 4.4 能正确采集、整理实验数据,对实验结果进行分析和解释,获取合理有效的结论。 毕业要求5(使用现代工具):能够针对软件工程领域复杂工程问题,开发、选择与使用恰当的技术、资源、现代工https://www.csust.edu.cn/jtxy/info/1302/20908.htm
9.电子商务网站建设第一部分是电子商务网站的基础理论,包括电子商务网站概述、电子商务网站的规划设计,重点奠定学生规划设计网站的能力;第二部分为网站建设的实现工具,包括最新的Dreamweaver网页实现工具的使用、最新的XHTML的用法;第三部分是网站的功能实现的相关知识,包括电子商务网站系统设计、ASP.NET编程语言的使用、动易后台的使用;第四https://baike.sogou.com/v5852534.htm
10.桌面移动及Web应用的开发工具Qt开始使用我们的课程材料、网络研讨会及其他直观学习工具。 立即开始学习Qt S3 Fuzion 的 Xelorate Built with Qt Xelorate是一款基于云计算的电子零件研究应用程序,兼具桌面应用程序和Web世界的优点,为供应商与工程师客户实现直接、实时的互动。 "采用集中式计算方法的基于Web的开发无法提供与Qt框架相同的性能水平和https://www.qt.io/zh-cn/product/qt-for-application-development
11.基于微信小程序的开发工具设计实验报告?微信小程序开发工具主要基于微信的小程序开发框架和 API,通过 Web 技术实现对小程序代码的编辑、调试和发布。在开发工具中,用户可以使用 HTML、CSS 和 JavaScript 语言等技术进行小程序开发,同时还可以通过开发工具提供的模拟器和真机调试功能对小程序进行调试,以保证程序的稳定性和兼容性。 https://www.yimenapp.com/kb-yimen/22183/
12.前端程序员推荐:web开发人员常用小工具大集合!99%的你用得到前言:随着技术发展,web网页开发要求越来越高,前端开发者都希望能更快速更高效更完美地展示,但工欲善其事必先利其器,今天我们就为大家整理一些好用的web开发常用工具,希望可以收藏实践下。 CSS 3相关 1.CSS3样式生成器:http://www.css88.com/tool/css3Preview/ https://www.jianshu.com/p/b10cb134b7f6
13.web可视化开发工具DecSoftAppBuilder2024.55x64安装免费版使用“ IDE工具”面板非常简单,只需单击可用的控件之一,然后在应用程序设计器中单击:然后将您单击的控件插入应用程序设计器中,然后可以使用IDE控件检查器开始更改其属性。,IDE控件样式检查器,将它们的一些事件编成代码等。 3、DE控件检查器 DecSoft App Builder IDE控件检查器允许在设计时为应用程序视图,应用程序对话https://www.5aixz.com/bianchengruanjian/2377.html
14.微信开发者工具mock(微信开发者工具模拟器启动失败)2、微信小程序如何盈利,小程序开发的盈利模式有哪些 3、怎样使用微信小程序的第三方js库? 4、微信web开发工具在哪 怎么自己制作微信小程序 如何制作微信小程序,首先我们需要从他的构成确定,微信小程序的制作需要的点有三个:设计、前端、后端。而相对简单的微信小程序可能只需要设计、前端。 https://www.eolink.com/news/post/71072.html