美文网首页Web攻防
微信小程序渗透Tips

微信小程序渗透Tips

作者: book4yi | 来源:发表于2024-03-23 15:59 被阅读0次

前言:


吃梅菜扣肉,喝听花白酒,撸淀粉肠子,品怨种人生。

小程序反编译:


0x01、获取代码包:

PC端:默认存储位置:%USERPROFILE%\Documents\WeChat Files\id\APP_.wxapkg就是我们要找的加密包
移动端:/data/data/com.tencent.mm/MicroMsg/xxxxxxxxxxxxxxxxxxxxxxxx/appbrand/pkg

0x02、解密代码包

目前因为微信更新了,需要使用unveilr来进行反编译:

反编译成功后,会在当前目录下生成一个 APP文件夹,这里面就是小程序源码。

可以使用微信小程序开发者工具打开:

0x03、sign签名绕过:

这里以父母邦亲子旅行酒店营地乐园活动小程序为例,在修改手机号处进行测试,观察到数据包如下:

当我们修改请求体中的数据再发送会提示签名失败,这时我们翻阅它的源码,看看这个sign是如何生成的:

整个 create_sign 函数的目的是将对象 r 的所有有效属性(除去某些特定属性)的所有内容按照键值对顺序排序、拼接成字符串并存储到数组 e,最后与传入的 t 参数连接起来进行MD5哈希运算,生成最终的签名。

按照上述请求包,最后得到的值是:phone_num=15xxxxxxxx5&scene=1256&version=3.3.13d19e4abd1036063faa4218c139378c0e

返回值为9a811d3130600d1399945346c59c0c07,可以发现是md5加密,未加盐。

编写js,引用该方法:

"use strict";
var a = require("./md5.js");
var i = {"phone_num":"15xxxxxxxx5","scene":1256,"version":"3.3.13", "appid":648481988}
i.sign = a.create_sign(i, "d19e4abd1036063faa4218c139378c0e");
console.log(i);

0x04、burpy插件使用:


在分析加密方式后,如果是自己写脚本或通过网站加解密再粘贴到burp中进行测试,都十分麻烦。因此,可以考虑结合burpy插件来进行漏洞测试。

脚本编写:

def encrypt(self, header, body):
    '''
    Auto Enc/Dec feature require this function
    '''
    enc_str = ''
    json_body = json.loads(body)
    json_body['sign'] = 'aaaaaaaaa'
    for key,value in json_body.items():
        if key not in ['sign', 'appid', 'imgupload', 'version']:
            enc_str += key + '=' + str(value) + '&'
    enc_str += 'version=' + str(json_body['version']) + 'd19e4abd1036063faa4218c139378c0e'
    json_body['sign'] = self.md5_enc(enc_str)
    return header, json.dumps(json_body)

def md5_enc(self, data):
    md5 = hashlib.md5()
    md5.update(data.encode('utf-8'))
    result = md5.hexdigest()
    return result

补充:此处代码还需要完善,因为enc_str涉及到排序的问题,可能需要多次测试来进行确定。

在Burpy PY file path:里面指定好你自己的python脚本。本身Burpy也提供了脚本模板,可以直接在它的脚本模板中进行修改

这里选择打开enable auto enc/dec会自动调用encrypt方法,在点击重放时自动进行加解密。

参考文章:


奇安信攻防社区-小程序绕过sign签名思路
小程序绕过 sign 签名

相关文章

  • 微信小程序 tips

    不要问我为啥一会儿iOS、一会儿RN、一会儿小程序,我就是一颗螺丝钉,哪里需要往哪里钉?。 踩坑tips记录:1、...

  • 微信小程序tips

    最近公司项目改版,趁产品修改与UI出图的间歇用公司商户端UI图撸了一把微信小程序。因为刚刚实习那一会接触过前端开发...

  • H5跳转微信小程序

    这问题,很多情况,分几类: 一、微信内嵌H5跳转内部微信小程序页 1. 小程序页内 Tips: 微信页面 web...

  • 浅谈微信小程序

    前言 太多时间遇到微信小程序的渗透测试,而自身就对其不甚了解,借此梳理微信小程序的一些知识点。 开发流程 小程序可...

  • 使用django开发微信小程序后端

    tips: 本文面向的对象是已经会使用django开发web后端的人员 微信小程序后端与普通web的区别 微信小程...

  • 微信小程序基础

    微信小程序介绍微信小程序开发工具的使用微信小程序框架文件微信小程序逻辑层微信小程序视图层微信小程序组件介绍微信小程...

  • 微信小程序教程、微信小程序开发资源下载汇总(6.16日更新,持续

    摘要:微信小程序教程合集、微信小程序开发资源合集、微信小程序DEMO合集、微信小程序商店合集、微信小程序经验合集、...

  • 一线大厂是如何开发微信小程序的?

    你是否也遇到了这些微信小程序开发痛点? 自 2017 年 1 月 9 日正式发布以来,微信小程序已经渗透到我们生活...

  • 方 | 微信小程序设计指南(完整版),建议收藏!

    Tips:图片看不清可点击放大观看 概要 基于微信小程序轻快的特点,我们拟定了小程序界面设计指南和建议。 设计指南...

  • 微信小程序设计tips

    自从张小龙在微信公开课上宣布今年1月9号将正式发布微信小程序之后,这个根植于微信上的『APP store』希望了业...

网友评论

    本文标题:微信小程序渗透Tips

    本文链接:https://www.haomeiwen.com/subject/gbtctjtx.html