记一次小程序加解密测试

  • A+
所属分类:安全文章 逆向工程
记一次小程序加解密测试
亲爱的,关注我吧
记一次小程序加解密测试

9/9

文章共计1487个词

和我一起阅读吧


作者:spider

来源:先知社区

网址:https://xz.aliyun.com/t/8205



1

前言

由于小程序的便捷性,越来越多的应用迁移到了小程序上,由此伴随着小程序上线前的日常渗透测试工作也开始增加。但小程序的测试中经常会遇到数据包被加密了,导致无法进行改包测试。和测试网页数据包加密一样,就需要找到小程序前端相应的加解密方法进行加解密数据包改包测试。

2

事情经过

不同于网页f12查看网页源码即可查看搜索相应加解密函数,小程序虽然也是三大组件但其前端源码存放在微信安装包的wxapkg包中,我们需要使用一个root设备提取处相应的wxapkg包,并还原出前端源码。文件一般位于 /data/data/com.tenc ent.mm/MicroMsg/appbrand/pkg/(安卓系统,以下测试都在安卓机下进行)目录下。

提取的时候需要准备一台root手机或使用夜神等模拟器均可,然后使用adb进入/data/data/com .tencent.mm/MicroMsg/appbrand/pkg/,提取相应的文件。由于wxapkg的命名时随机的,可以使用ls -al 命令根据你所安装小程序时间来判断提取相应小程序的wxapkg包。.wxapkg是一个二进制文件,有其自己的一套结构,具体可以参考该http://lrdcq.com/me/read.php/66.htm

接下来就需要对wxapkg文件进行反编译提取相应的前端源码,一般是搭建nodejs环境进行反编译还原。我比较懒不太想搭喜欢用傻瓜式操作,这边推荐一个小程序反编译工具CrackMinApp,具有图形化的操作界面及所需依赖环境。界面长这样:

记一次小程序加解密测试

下载和操作指南可以参考它的github项目https://github.com/Cherrison/CrackMinApp还原后的前端源码就这样:

记一次小程序加解密测试



3

开始测试


第一步就是要找到前端源码中的加解密的方法,一行行代码去找肯定不现实太费时间,一般都全局搜 encrypt、decrypt、AES、DES、RSA这些关键词。一般来说基本都用对称加密且AES出现的频率最高,如下所示直接找到相应的加解密方法和密码。

记一次小程序加解密测试

记一次小程序加解密测试


用的还是ECB模式这这这。之后就好办了开始测试发现两个高危,中低危就不描述了,说实话加密的数据包解密后一般漏洞较多。


3.1任意用户登录

在忘记密码处输入手机号点击发送验证码,如下所示:

记一次小程序加解密测试

在验证码输入框内输入任意6位数字,如下所示:

记一次小程序加解密测试



点击下一步,拦截服务器返回数据包,如下所示:

记一次小程序加解密测试


数据包内容解密结果如下:
记一次小程序加解密测试

将返回数据包改成如下形式{"code":200},加密后数据包发至客户端,

欺骗成功跳转至设置密码处如下所示:

记一次小程序加解密测试
设置任意密码提交后即可成功修改密码,如下所示:
记一次小程序加解密测试
利用修改完的密码可成功登录,从而实现任意用户密码修改。


3.2 SQL注入

在发现处搜索项目抓取相应的数据包,重放返回如下数据信息:

记一次小程序加解密测试


解密后为项目数据信息,如下所示:

记一次小程序加解密测试


修改POST参数值itemName为’,发现服务器返回500错误如下所示:

记一次小程序加解密测试

记一次小程序加解密测试


由于服务端返回的数据项目名称为例如某某公司,POST数据输入搜索参数为该公司名称有数据返回,输入搜索关键词为"公司“时无数据返回,故猜测sql语句逻辑为模糊查询为如下所示:

'select * from table where clo like '+canshu+'%'


故构造payload首先猜测数据库用户名长度如下所示:

记一次小程序加解密测试

加密后在POST包中发送如下所示当长度大于等于3时返回正常,大于等于4时无数据返回,故判断得到数据库用户名长度为3,如下所示:

记一次小程序加解密测试

记一次小程序加解密测试


同理构造如下payload猜测数据库用户名,如下所示:

记一次小程序加解密测试

之后就不深入了,测完收工。

4

相关实验

SQL注入原理与实践 

https://www.hetianlab.com/expc.do?ec=ECIDee9320adea6e062017112114390500001

本实验介绍了SQL注入原理,解释了简单判断一个参数是否存在注入的原理,能够利用简单的SQL注入获取其他敏感数据

9/9


欢迎投稿至邮箱:[email protected]

有才能的你快来投稿吧!

稿件一经发布,现金奖励200 – 800元。

投稿细则都在里面了,点击查看哦

重金悬赏 | 合天原创投稿涨稿费啦!


记一次小程序加解密测试
“阅读原文”我们一起get实验

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: