精华内容
下载资源
问答
  • 小程序安全测试工具
    千次阅读
    2020-04-08 00:32:03
    计算器小程序二维码

    最近微信小程序代码审核不通过,原因是未将用户的头像和网名做内容接入安全,根据修改指引:

    什么服务或功能的小程序是UGC小程序?

    小程序中的功能或服务中,涉及用户将自己自定义编辑的文字、图片、音频、视频等内容通过小程序进行展示或提供给其他用户的,属于UGC小程序。

    作为UGC小程序,用户发布的内容与小程序是否相关?

    微信小程序的服务提供者应当负有监管责任,应设置过滤违法、违规等不当信息内容的机制,保证用户产生内容符合信息内容的规定。

    如果UGC小程序平台用户发布以上或其他违规内容,开发者应该怎么做?

    1、接入内容安全检测接口:< a href="https://mp.weixin.qq.com/cgi-bin/announce?action=getannouncement&key=11522142966rk3L2&version=1&lang=zh_CN&platform=2">查看详情</ a>

    该接口监测接口校验文本/图片是否含有敏感内容,提升信息安全防护能力。

    2、目前安全接口支持基础检测能力,建议开发者建立自己的内容审核机制,安排审核团队定期审查小程序运营内容,及时处理违规内容/账户,降低被恶意利用导致传播恶意内容的风险。

    通过查阅文档,发现了两种内容安全检测的方式:

    (1) 使用微信服务平台里的API---珊瑚文本内容安全和珊瑚图片内容安全

     根据里面的开发文档,可以很便捷地实现内容安全检测,以下是官方代码:

    /**
     * 珊瑚图片内容安全
     */
    function doImgSecCheck() {
      var d = Date.now()
      wx.serviceMarket.invokeService({
        service: 'wxee446d7507c68b11',
        api: 'imgSecCheck',
        data: {
          "Action": "ImageModeration",
          "Scenes": ["PORN", "POLITICS", "TERRORISM", "TEXT"],
          "ImageUrl": "http://mat1.gtimg.com/pingjs/ext2020/qqindex2018/dist/img/qq_logo_2x.png",
          "ImageBase64": "",
          "Config": "",
          "Extra": ""
        },
      }).then(res => {
        console.log(res)
      })
    }
    //doImgSecCheck()
    
    /**
     * 珊瑚文本内容安全
     */
    function doMsgSecCheck () {
      wx.serviceMarket.invokeService({
        service: 'wxee446d7507c68b11',
        api: 'msgSecCheck',
        data: {
          "Action": "TextApproval",
          "Text": "hello world!"
        },
      }).then(res => {
        console.log(res)
      })
    }
    
    
    //doMsgSecCheck ()
    

    (2)使用云调用,在云函数中使用两个接口security.imgSecCheck和security.msgSecCheck

    云调用

    云调用是小程序·云开发提供的在云函数中调用微信开放接口的能力,需要在云函数中通过 wx-server-sdk 使用。

    接口方法

    openapi.security.imgSecCheck
    openapi.security.msgSecCheck
    

    需在 config.json 中配置 security.imgSecCheck API 和security.msgSecCheck API 的权限

     找到云函数的config.json文件,在里面添加:

    {
      "permissions": {
        "openapi": [
          "security.msgSecCheck",
          "security.imgSecCheck"
    
        ]
      }
    }

    需要配置云调用权限,每个云函数需要声明其会使用到的接口,否则无法调用,声明的方法是在云函数目录下的 config.json(如无需新建)配置文件的 permissions.openapi 字段中增加要调用的接口名,permissions.openapi 是个字符串数组字段,值必须为所需调用的服务端接口名称。在每次使用微信开发者工具上传云函数时均会根据配置更新权限,该配置有10分钟的缓存,如果更新后提示没有权限,稍等10分钟后再试。

    文本内容安全检测比较简单:

    检查一段文本是否含有违法违规内容。

    应用场景举例:

    1. 用户个人资料违规文字检测;
    2. 媒体新闻类用户发表文章,评论内容检测;
    3. 游戏类用户编辑上传的素材(如答题类小游戏用户上传的问题及答案)检测等。 频率限制:单个 appId 调用上限为 4000 次/分钟,2,000,000 次/天

     图片内容检测复杂一点:

    校验一张图片是否含有违法违规内容。

    应用场景举例:

    1. 图片智能鉴黄:涉及拍照的工具类应用(如美拍,识图类应用)用户拍照上传检测;电商类商品上架图片检测;媒体类用户文章里的图片检测等;
    2. 敏感人脸识别:用户头像;媒体类用户文章里的图片检测;社交类用户上传的图片检测等。 频率限制:单个 appId 调用上限为 2000 次/分钟,200,000 次/天*(图片大小限制:1M)。

    请求参数

    属性类型默认值必填说明
    mediaFormData媒体文件数据

    media 的结构

    属性类型默认值必填说明
    contentTypestring数据类型,传入 MIME Type
    valueBuffer文件 Buffer

     官方代码:

    // cloud = require('wx-server-sdk')
    // ...
    // 方法返回 Promise
    cloud.openapi.security.imgSecCheck({
      media: {
        contentType: 'image/png',
        value: Buffer
      }
    })

    这里value的数据类型为Buffer,而我们在小程序端还是云函数端操作图片一般是通过它的文件地址来进行的,后来查阅文档发现:

    downloadFile

    从云存储空间下载文件

    请求参数

    字段说明数据类型默认值必填
    fileID云文件 IDString-Y

    Promise 返回参数

    字段说明数据类型
    fileContent文件内容Buffer
    statusCode服务器返回的 HTTP 状态码Number

     在这里有我们所需的Buffer数据,所以需要分成两步:先用

    const res = await cloud.downloadFile({
        fileID: fileID,
      })
      const buffer = res.fileContent

    获取图片文件的buffer,再使用cloud.openapi.security.imgSecCheck()方法检测图片内容是否安全

    以下是安全检测云函数的测试代码

    // 云函数入口文件
    const cloud = require('wx-server-sdk')
    cloud.init({
      env: cloud.DYNAMIC_CURRENT_ENV
    })
    // 云函数入口函数
    exports.main = async (event, context) => {
        //文本内容安全
      /*   try {
          let result = await cloud.openapi.security.msgSecCheck({
            content: '么么么哒'
          })
          console.log(result)
          if (result.errCode == 0) {
            return true;
          }
          return false
        } catch (err) {
          return false;
        } */
        //图片内容安全
        const fileID = 'cloud://test-dijf3/test/test.png'
        const res = await cloud.downloadFile({
          fileID: fileID,
        })
        const buffer = res.fileContent
        try {
          var result = await cloud.openapi.security.imgSecCheck({
            media: {
              contentType:"image/png",
              value: buffer
            }
          })
          return result
        } catch (err) {
          return err
        }
    }

    问题到这里似乎就解决了,但是我要实现的功能是将用户的头像和用户名做安全检测。

    在小程序端,使用wx.getUserInfo()可以获得用户的头像链接avatarUrl和用户名nickName,但是这个avatarUrl是一个图片链接,例如:

    https://wx.qlogo.cn/mmopen/vi_32********************

    点击此链接可以查看用户的头像,但是前面提到的fileID它是在云存储中的一个文件地址,所以需要先把用户头像上传到云存储当中,以便获取fileID。但是要上传到云存储中就必须获得头像图片的临时存储路径filePath,所以要先将图片下载到本地,这里使用wx.getImageInfo(),可以将网络图片保存在本地,从而获取它的临时路径。

    wx.getImageInfo({
      src: 'https://wx.qlogo.cn/mmopen/vi_32/*************',
      success: function (res) {       //访问存放微信用户头像的Url 
        console.log(res.path)
      }
    }) 
    

     问题随着而来,系统会提示https://wx.qlogo.cn非downloadFile的合法域名。在详情->项目配置中可以看到:

     所以需要在后台->开发->开发设置中设置服务器域名

    此时就不会报错了。

    然后再上传到云存储中,然后再调用云函数,传入获取的fileID,即可实现。

    wx.cloud.uploadFile({
      cloudPath:'test.png',
      filePath:'',
      success: res => {
        console.log('[上传文件] 成功:', res)
        wx.cloud.callFunction({
          name: 'imgSecCheck',
          data: {
            contentType: contentType,
            fileID: res.fileID
          }
        }).then(res => {
          console.log("检测结果", res.result);
        }) 
      },
      fail: e => {
        console.error('[上传文件] 失败:', e)
      }
    }) 

    步骤如下:

    1,通过wx.getImageInfo()将头像图片下载到本地,以获取临时存储路径filePath

    2,将头像图片上传到云存储中,以获取fileID

    3,通过cloud.downloadFile()获取图片的buffer

    4,将buffer填入value,调用cloud.openapi.security.imgSecCheck以实现安全检测

    随着学习的深入,我发现可以先将本地图片编码成base64格式,然后直接传入云函数

    wx.getFileSystemManager().readFile({
            filePath: filePath, //选择图片返回的相对路径
            encoding: 'base64', //编码格式
            success: res => { //成功的回调
              wx.cloud.callFunction({
                name:'imageSecCheck',
                data:{
                  file: res.data
                },
                success(_res){
                 
                  console.log(_res)
                  wx.hideLoading()
                  //wx.hideLoading()
                },fail(_res){
                  console.log(_res)
                }
              })
              index++;
            }
          })

    云函数端代码:

     var buffer = new Buffer(event.file, 'base64')
        try {
          var result = await cloud.openapi.security.imgSecCheck({
            media: {
              contentType:"image/png",
              value: buffer
            }
          })
          return result
        } catch (err) {
          return err
        } 

    此时也可以实现图片安全检测,方法更为简洁。

    步骤如下:

    1,通过wx.getImageInfo()将头像图片下载到本地,以获取临时存储路径filePath

    2,将图片数据编码成base64格式,将编码后数据传入云函数

    3,通过var buffer = new Buffer(event.file, 'base64')获取图片的buffer

    4,将buffer填入value,调用cloud.openapi.security.imgSecCheck以实现安全检测

    更多相关内容
  • 目前,小程序的应用可以说相当普遍,在渗透测试和外部打点时,如果对目标系统没有有效的思路时,不妨试着从小程序下手。

    声明:本文在FreeBuf首发,首发链接为:https://www.freebuf.com/articles/network/325498.html

    目前,小程序的应用可以说相当普遍,在渗透测试和外部打点时,如果对目标系统没有有效的思路时,不妨试着从小程序下手。

    解密与解包

    获取小程序源码的方式有很多种,可以通过夜神这类安卓模拟器、iOS、安卓手机等获取到小程序包,而PC端的小程序包则进行了相应的加密。这里就以比较复杂PC端为例展开讲解。

    找到目标小程序包

    1. 一般小程序包位置位于微信文件管理目录的 \WeChat Files\Applet\ 目录下

    1. 打开相应目录后,再打开需要测试的微信小程序,这时就会生成相应的包,再根据时间进行排序,这样就能很快定位到目标小程序

    1. 逐一开打目录,可以找到 .wxapkg 结尾的包,这里选择主包 __APP__.wxapg

    解密

    新版的PC小程序需要先解密才能进行反编译,关注公众号 SpaceSec安全团队,回复关键字 “小程序”,即可获得解密工具

    双击打开解密工具,选择对应小程序包的位置,需要注意的是,不能将包拷贝到其他目录,否则会无法获取到小程序的ID,导致解密失败;同时不能删除工具下的 wxpack 目录,这是解密结果的目录

    解包

    在 wxpack 目录下找到对应同名的小程序包

    1. 下载 nodejs,一直下一步安装即可

    2. 下载解包工具

      git clone https://github.com/wanliofficial/wxappUnpacker.git
      
    3. 安装依赖

      npm install
      
    4. 解包

      node wuWxapkg.js <wx_mini_progranm_file_path>
      

      解包成功后,会得到如下文件

    这里仅演示解密主包,如果小程序有其他分包,可以用同样的方法进行解密和解包,但是在反编译分包时,需要带上 -s 参数,如下

    node wuWxapkg.js -s=../ xxxx.wxapkg
    

    ../ 表示结果输出目录

    xxxx.wxapkg 表示分包位置

    抓包环境搭建

    小程序的抓包环境也有非常多的搭建方式,同样可以采用模拟器或者移动端,可以参考APP抓包的方式,这里同样是以PC端为例,搭建一个 Wechat -> Proxifier -> Burp 的抓包环境

    将Burp的证书安装到系统中

    注意是系统,不是浏览器,否则将抓不到 HTTPS流量

    1. 访问Burp代理端口,下载证书

    2. 安装证书

      双击打开证书,点击确定

      根据图示依次点击,注意要选择为 受信任的根证书颁发机构

      然后一路下一步即可

    Proxifier配置

    1. 配置代理服务器

      填入Burp代理的IP和端口,选择协议为 HTTPS

    2. 添加规则

      由于系统的流量会比较多,如果不设置指定的规则,会有许多干扰流量,不方便后续的渗透测试

      点击Browser,选择小程序的主程序,在Windows下文件名为 wechatapp.exe ,在 MacOS下名为 Mini Program.app ,这里我用 search Everything 搜索文件名,定位到相应位置再打开

      选择好应用后,操作点击刚刚配置好的Burp代理服务器

      最后再将默认的流量设置为直接连接即可

      再把设置的规则 mini-program前面的选框勾上,就能进行抓包了

    后记

    SpaceSec安全团队热衷分享网络安全相关的技术,希望能和各位师傅们一同成长,后续更新内容将会在公众号中持续更新,欢迎关注交流呀~

    声明

    1. 本文初衷为分享网络安全知识,请勿利用技术做出任何危害网络安全的行为,由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,与SpaceSec安全团队及作者无关!
    2. 文章中部分学习内容来自于网络,回馈予网络,如涉及版权问题,请联系删除。
    3. SpaceSec 保留对文章绝对的解释权,转载与传播时须保证文章的完整性,同时标明出处。未经允许,禁止转载或用于商业用途。
    4. 加小编,进内部技术交流群,还有不定期福利,微:SpaceSec_S
    展开全文
  • 微信小程序性能测试Trace工具

    千次阅读 2021-01-13 17:09:51
    微信小程序开发工具中提供了trace panel工具,利用trace工具可时时监控小程序的性能。分析trace文件可获取内存、CPU、fps、启动时间、各函数的执行时间等。 二、环境搭建 1、电脑上安装adb 链接:...

    一、Trace工具介绍

    微信小程序开发工具中提供了trace panel工具,利用trace工具可时时监控小程序的性能。分析trace文件可获取内存、CPU、fps、启动时间、各函数的执行时间等。

    二、环境搭建

    1、电脑上安装adb

     链接:https://pan.baidu.com/s/1SKu24yyShwg16lyIupO5VA 提取码:ih0i
    

    2、安装node.js官方下载

    3、下载安装微信开发者工具微信小程序官方

    三、操作步骤

    • 电脑上安装adb,打开命令窗口进入解压目录,我的地址是:D:\ADB,输入:adb version 检查是否安装成功
      在这里插入图片描述
      2、手机与电脑连接,手机USB打开调试模式
    • 以小米手机为例:手机用数据线连接至电脑;手机设置->我的设备->全部参数->MIUI版本连续点击多次直到出现您已处于开发者模式->重新回到设置->更多设置->开发者选项->允许USB调试
    • 其他手机型号可以百度查询~
    • 检验手机和电脑是否连接成功(命令: adb devices)
      在这里插入图片描述
      具体操作步骤:
      1、登录微信小程序开发者工具->小程序->点击加号导入项目代码;或者选择测试号(demo)进入
      在这里插入图片描述
      Choose Device,如果手机adb连接成功在弹框中可看到连接设备!
      在这里插入图片描述

    在这里插入图片描述
    2、手机端,进入要测的微信小程序中(与开发者工具登录的同一个小程序);若无关注要测的小程序时,可在开发者工具上点击真机调试,扫码就可关注进入
    在这里插入图片描述
    3、手机进入小程序后,打开性能监控面板(点击监控后要重新登录微信和小程序)
    在这里插入图片描述
    在这里插入图片描述
    4、打开性能监控面板之后我们可以看到如下图。在小程序中操作后可导出trace文件(手机与电脑连接)
    在这里插入图片描述
    5、导出后在电脑端就会显示其trace文件,点击可查看测量的性能数据
    在这里插入图片描述
    6、选择需要查看的文件,即可查看所需的性能数据
    7、选中后在底部展示其具体数据如下:
    在这里插入图片描述
    小程序上的性能指标说明:
    在这里插入图片描述
    在这里插入图片描述

    本文学习参考网址:https://blog.csdn.net/weixin_42359436/article/details/106691241?ops_request_misc=%25257B%252522request%25255Fid%252522%25253A%252522161052308716780271559457%252522%25252C%252522scm%252522%25253A%25252220140713.130102334.pc%25255Fall.%252522%25257D&request_id=161052308716780271559457&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_v2~rank_v29-4-106691241.pc_search_result_no_baidu_js&utm_term=%E5%BE%AE%E4%BF%A1%E5%B0%8F%E7%A8%8B%E5%BA%8F%E6%80%A7%E8%83%BD%E6%B5%8B%E8%AF%95-Trace%E5%B7%A5%E5%85%B7

    展开全文
  • 初探微信小程序渗透测试

    千次阅读 2022-03-18 09:36:54
    初探微信小程序渗透测试

    一、前言

    日常做web或者工控相关的渗透测试,偶然的机会接了个微信小程序的项目,研究了一下

    二、初探

    我是将微信装在了模拟器上,不需要模拟器也可以,方法有很多

    不需要模拟器可直接设代理 burpsuite 抓包

    我使用的是夜神模拟器配合 burpsuite 进行抓包,我的夜神模拟器内设系统Android 5.0的版本,版本老的话易于兼容,新的版本都是7.0以上,抓取 HTTPS 包需要配置一些东西,很麻烦,大家可以按照我的版本搭建。

    接下来开始配置抓包环境

    ipconfig查看一下我们本机的ip
    在这里插入图片描述
    在burpsuite添加上代理,端口可随意设置,无要求
    在这里插入图片描述
    打开夜神模拟器,在 WLAN 选择手动代理,并设置代理地址和代理端口,与 burpsuite 的设置对应
    在这里插入图片描述

    保存后,打开浏览器访问ip:port,我这里是192.168.201.96:8888,点击CA Certificate下载证书
    在这里插入图片描述
    由于我这边之前安装好了,详细说一下操作步骤吧
    下载好证书后,打开文件管理器,在sdcard->Download目录中可以看到下载下来的证书
    在这里插入图片描述
    将cacert.der更名为cacert.cer,也就是将后缀改成cer,然后到手机设置->安全中,选择从 SD 卡安装
    在这里插入图片描述
    在这里插入图片描述
    安装好了后,打开浏览器访问百度看看,burpsutie能抓包就说明环境配置成功了

    反编译微信小程序代码包

    在模拟器登录上微信,访问一个小程序,等到小程序全部加载完了后,就可以在模拟器中找到一个文件夹,里面便存放着小程序的代码包

    打开文件管理器,在data/data/com.tencent.mm/MicroMsg会生成一个md5加密命名的文件夹(如果同时有多个文件夹不容易识别的情况,可以选择把MicroMsg文件夹所有内容删除掉,再去重新打开微信小程序,就会得到唯一一个MD5加密命名的文件夹啦,其实看一下文件创建时间就能知道是哪个了)
    在这里插入图片描述
    在该文件夹下的appbrand/pkg目录下找到.wxapkg后缀结尾的文件,其中只有几MB大小的就是刚刚打开的小程序的代码包了
    在这里插入图片描述
    点击勾选之后,来到根目录下的mnt/shared/App目录,打开右上角三个.的功能菜单选择粘贴选择项,将文件复制到该文件夹
    在这里插入图片描述
    在这里插入图片描述
    这个文件夹是与你电脑本机的共享文件夹,点开电脑文件夹,打开文件夹“AppShare”,就能查看到这个代码包了
    在这里插入图片描述
    在这里插入图片描述
    接下来将这个文件进行反编译得到源码

    1、需要配置Nodejs环境(下载地址:https://nodejs.org/zh-cn/download)
    2、下载反编译工具(下载地址:https://wwi.lanzouq.com/i4CM8zr395e)
    3、大多数的小程序代码包会有加密,附上一个解码工具(下载地址:https://wwi.lanzouq.com/iPqZbzr3a2h)

    简单讲一下配置nodejs环境:
    根据自己电脑系统及位数选择,我这里选择windows64位.msi格式安装包,因为不想再配环境变量了,安装的时候默认自己配了
    在这里插入图片描述
    .msi.zip格式区别:

    .msi是Windows installer开发出来的程序安装文件,它可以让你安装,修改,卸载你所安装的程序。说白了.msi就是Windows installer的数据包,把所有和安装文件相关的内容封装在一个包里。
    .zip是一个压缩包,解压之后即可,不需要安装

    安装完成后,.msi格式的安装包已经将node.exe添加到系统环境变量path中,如果你下载的是.zip格式,因为没有安装过程,所以需要手动将node.exe所在目录添加到环境变量path中,查看系统变量验证
    在这里插入图片描述
    安装好后验证一下,打开CMD窗口输入node -v查看版本
    在这里插入图片描述
    接下来安装脚本运行环境,依次输入下列命令

    npm install esprima -g
    npm install css-tree -g
    npm install cssbeautify -g
    npm install vm2 -g
    npm install uglify-es -g
    npm install js-beautify -g
    npm install escodegen -g
    

    在这里插入图片描述
    全部安装好了后,下面开始正式反编译了!
    1、首先将之前获取的代码包解密,利用解密工具,很幸运的是,我访问的这个小程序代码包未加密
    在这里插入图片描述
    2、将下载好的反编译工具wxappUnpacker解压,打开文件夹,在该文件夹打开cmd
    在这里插入图片描述
    3、输入命令node wuWxapkg.js 代码包所在位置,回车即可开始反编译
    在这里插入图片描述
    在这里插入图片描述
    结束后就可在代码包的位置出现一个同名的文件夹,该文件夹就是反编译成功的源码包啦
    在这里插入图片描述
    源码包拿到后,就可以很舒服的看js代码了
    在这里插入图片描述首先挨个js文件点开看,js编程很灵活,招架不住文件太多了,直接上工具!
    代码审计工具大家应该都用过,我这里推荐我用的审计工具Fortify SCA ,审计速度快但误报不少,还算好用,界面简单明了
    这里发现有很多地方存在硬编码加密密钥漏洞,任何有权访问代码的人都可以访问加密密钥。应用程序发布后,除非对程序进行修补,否则无法更改加密密钥。有权访问此信息的员工可以使用此信息闯入系统。如果攻击者可以访问应用程序的可执行文件,他们可以提取加密密钥值。危害还是很大的。
    在这里插入图片描述
    收获不多,但初探过程很有意思,大家可以试一试

    三、下面附上某社区的文章,同样是对微信小程序的,比较详细的审计及漏洞验证方法,供大家学习

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

    信息泄露

    反编译出来的源码泄露登录账号密码,这里是因为在 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的利用

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

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

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

    写到最后

    个人感觉,微信小程序的渗透我觉得最重要的还是仔细审计一下反编译得到的源码,源码里才都是宝贝

    展开全文
  • 推荐10款最佳的App安全测试工具

    千次阅读 2022-04-28 15:20:09
    移动互联网时代,我们的生活和工作深受 App 影响。伴随移动 App 的广泛应用,App 安全日益重要。本文介绍了 App 开发可能用到的安全测试工具
  • 微信小程序如何测试

    千次阅读 2022-03-07 10:02:22
    那我们该如何进行微信小程序测试呢? 1、功能测试 功能测试以需求文档和交互视觉文档为准,如果没有这些文档,参考APP的测试方法,也就是说就把它当做手机的APP来测试即可。 2、兼容性测试 01、操作系统的...
  • 微信小程序——云开发的安全规则

    千次阅读 2022-01-19 10:31:12
    安全规则是一个可以灵活地自定义数据库和云存储读写权限的权限控制方式,通过配置安全规则,开发者可以在小程序端、网页端精细化的控制云存储和集合中所有记录的增、删、改、查权限,自动拒绝不符合安全规则的前端...
  • 微信小程序测试的环境搭建,整体流程是: 1.安装微信开发者工具 2.登录微信开发者工具 3.安装hbuildx 4.导入项目 5.设置hbuildx和微信开发者关联信息 6.编译代码 7.微信小程序测试 1、安装微信开发者工具 1....
  • 项目介绍 ... hackUtils- 它是一个用于渗透测试和网络安全研究的黑客工具包,渗透以及web攻击脚本。 msf框架: pocsscan攻击框架 Pocsuite攻击框架 Beebeeto攻击框架 ...
  • 由于经常反编译小程序,都是通过命令操作完成,步骤比较繁琐,故本人只好利用空闲时间对其进行小幅度修改,水平有限,经过慢慢研究、修改、拼凑而成。 二、运行环境 软件采用 VS 2017 编译,需安装.net 4.0 或以上...
  • 微信公众平台为了帮助开发者简单和高效地开发和调试微信小程序,在原有的公众号网页调试工具的基础上,推出了全新的 微信开发者工具,集成了公众号网页调试和小程序调试两种开发模式。开发者可以完成小程序的开发 ...
  • web测试,APP测试小程序测试特点

    千次阅读 2022-03-14 18:27:09
    测试相同点:都是需要按照需求来进行测试 测试流程是一样的:制定测试计划,设计测试方案,编写测试用例(每一个环节需要进行评审),执行用例 测试的方法是一样的:每个软件都可以手工测试,都可以实现自动化...
  • Web 应用程序测试工具

    千次阅读 2022-01-27 22:09:00
    它们对不同小工具的实用开放性、信息安全性、扩展的适应性和多功能性使它们成为最佳选择。 在任何情况下,规划一个非常适合大众的 Web 应用程序,并且没有限制和破坏计算机的组织,这不是儿戏,需要一个严格的规划...
  • web测试,App测试小程序测试区别

    千次阅读 2021-07-19 14:13:50
    web测试,App测试小程序测试的简介
  • 微信小程序反编译.zip

    2021-06-09 17:25:03
    在做微信小程序渗透时,发现有很多工具不咋地,在找了很多后,最后分享2个(一个图形化一个shell的)图形化的超方便,exe未进行安全检测,建议在虚拟机下安装使用。
  • 最近作一个小程序,在开发者工具上完成以后,真机调试了一下发现数据都没有传过来,就很头疼。而后寻找解决的办法:javascript开始一直觉得是域名有问题,服务器域名我都配置了,我点了不校验安全域名、web-view ...
  • 微信小程序-2-微信开发者工具介绍

    千次阅读 2020-12-04 10:27:01
    在登录页,可以使用微信扫码登录开发者工具,开发者工具将使用这个微信帐号的信息进行小程序的开发和调试。 项目列表 登录成功后,会看到已经存在的项目列表和代码片段列表, 在项目列表可以选择公众号网页调试,...
  • 小程序安全与管控

    千次阅读 2019-02-18 15:13:02
    先给小程序团队的双线程设计鼓个掌,关于双线程大家也可以回顾下《小程序的底层框架》。 H5 的隐患 要知道,Web 技术是非常开放灵活的,开发者可以利用 JavaScript 脚本随意地操作 DOM,这是会带来以下的问题: ...
  • 1、uniapp如何在真机测试 首先,你的手机要打开开发者模式,下拉选择USB调试(各个手机开发开发者模式的...微信小程序开发流程、开发者工具下载安装 微信小程序开发(创建项目介绍) 你要创建过一个微信小程序项目之后
  • 且已获得小程序项目的开发者角色。 1、打开Git Bash 克隆小程序项目。克隆完成后。 2、打开HBuilder,点击菜单“文件”下的“打开目录”,选择已克隆的小程序项目。 3、点击“运行—运行小程序模拟器-微信...
  • 检测安全工具.rar

    2019-11-08 15:45:34
    检查各系列版本的安全锁序列号状态,有效果哦,需要的伙伴欢迎下载
  • api安全测试工具_API安全测试

    千次阅读 2020-08-01 13:00:17
    api安全测试工具 API测试的最佳做法 (Best Practices for API Testing) RESTful APIs have become a fundamental part of modern web application development in recent years. The RESTful approach is far more ...
  • 微信小程序 解决请求服务器手机预览请求不到数据的方法(微信开发者工具数据显示正常) 问题描述:体验版显示没有问题,最近调接口微信小程序体验版数据(请求失败),开发者工具状态显示正常(真机调试也没问题),...
  • 如何测试小程序

    千次阅读 2021-04-11 19:25:42
    小程序的有点 1.无序下载即用即走 不需要考虑安装、卸载等测试点 2.功能丰富,清爽体验 界面里的操作更多的是点击或者滑动,不是输入,操作性更强 3.流量大,易裂变 依附于微信,用户体量大的天然 小程序与APP的区别...
  • 目前,小程序的应用可以说相当普遍,在渗透测试和外部打点时,如果对目标系统没有有效的思路时,不妨试着从小程序下手。 获取小程序源码的方式有很多种,可以通过夜神这类安卓模拟器、iOS、安卓手机等获取到小程序...
  • 小程序抓包&反编译测试从0到1

    千次阅读 2022-02-15 13:33:18
    APP、小程序抓包,测试教学视频请观看: Android安全逆向技术入门课程--移动安全视频教程-信息安全-CSDN程序员研修院熟悉了解Android程序APK的基本结构、文件格式 掌握APK反编译常用工具 能够学会绕过常见VIP限制-...
  • 十大开源Web应用安全测试工具

    千次阅读 2020-05-22 00:00:00
    点击蓝字关注我们Web应用安全测试可对Web应用程序执行功能测试,找到尽可能多的安全问题,大大降低黑客入侵几率。在研究并推荐一些最佳的开源Web应用安全测试工具之前,让我们首先了解一下安...
  • 微信小程序测试注意事项

    千次阅读 2021-10-25 10:21:39
    对于安全测试由于小程序集成在微信客户端内,相比于传统的网页来说安全性能够更有保障。只要在后台接口测试上保证数据的安全性,客户端的安全性由微信的应用程序来替我们保证。 1、功能测试 功能测试跟传统的网络...
  • 本文主要对小程序开发工具进行简单介绍: 界面布局 菜单栏/工具栏 模拟器 编辑器 调试器 二 界面布局 小程序项目创建成功后,会自动进入开发调试环境,从图中可以看出,微信开发者工具的主界面主要由菜单栏...
  • 微信小程序测试方案

    千次阅读 2019-05-19 15:13:42
    小程序架构 小程序主要分为两个主要的部分:view模块和service模块。view模块负责UI展示,它由wxml和wxss转换后的代码以及微信提供的辅助模块组成。一个view模块对应一个webview组件,小程序支持多个view存在,view...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 394,151
精华内容 157,660
关键字:

小程序安全测试工具