T翼云扣webpack原生代码
逆向目标
目标:天翼云登录框
链接:https://m.ctyun.cn/wap/main/auth/login
简介:主要对加密的函数的提取,找打加密的地方,分析加密函数,提取重要的JS代码进行加密算法还原
发现这块的JS是webpack打包过的
webpack的特点:将所有的函数封装好,集成到一个个模块中,然后使用加载器或方法体来调用这些模块,变成一个对象,这样子就可以使用这个模块里面的函数和属性。
webpack讲解js逆向——webpack扣法_webpack 逆向-CSDN博客
01 webpack简介webpack是个静态模块打包工具,目的是为了让前端工程师写的前端代码变成浏览器可以识别的代码,并且可以达到前端项目的模块化,也就是如何更高效地管理和维护项目中的每一个资源。
但无疑是对js逆向造成了妨碍。但如果掌握了扣取webpack的一些技巧也是不难的。接下来,说一下对扣取webpack代码的一些理解。
02 webpack的组成一个最基本的webpack组成有两个部分:
自执行函数
模块加载器(实际上也就是一个函数而已)
//1.传入的参数是 ...
某music音乐评论解密
常规分析这块很多步骤参考原作者文章,地址如下:
https://mp.weixin.qq.com/s/loXsmR8uhrtFA_3EuBQB8w
目标地址aHR0cHM6Ly9tdXNpYy4xNjMuY29tLyMvc29uZz9pZD0yMDYxOTc4OTYx
分析数据包1、获取评论接口为https://music.163.com/weapi/comment/resource/comments/get?csrf_token=
2、POST请求,里面有两个参数 “params“和”encSecKey“
尝试多次请求,发现这两个参数值是一直变化的。
分析参数按照以往的抓取经验来说,它们大概率是在一起的,因此可以通过全局搜索encSecKey这个词汇。
var bKL9C = window.asrsea(JSON.stringify(i6c), bvl1x(["流泪", "强"]), bvl1x(Rj5o.md), bvl1x(["爱心", "女孩", "惊恐", ...
JsRpc:提升前端渗透测试效率
Rpc概述什么是RPC全称 Remote Procedure Call——远程过程调用。
在网站的控制台新建一个WebScoket客户端链接到服务器通信,调用服务器的接口 服务器会发送信息给客户端
客户端接收到要执行的方法执行完js代码后把获得想要的内容发回给服务器 服务器接收到后再显示出来
在js加密中JsRPC有什么作用?
比如在访问网站时,我们想直接替换参数,查看有无sql注入或者想枚举密码、挖掘逻辑漏洞替换参数。但是发现参数值是加密的。此时,阅读js代码、补环境很费时费力。上手难度较大。
这时候就可以使用JsRPC。
RPC的优点:免去扣取代码和补环境的步骤。。。
基本流程用户找到加密函数的位置【最重要】
在浏览器的console中输入env.js(包中自带的)
cmd中运行jsrpc程序
工具介绍下载地址
https://github.com/jxhczhl/JsRpc
目录结构-- main.go (服务器的主代码)-- resouces/JsEnv_Dev.js (客户端注入js环境)
介绍运行服务器程序和js脚本 即可让它们通信,实现调用接口执行js获取想要的 ...
支付宝小程序反编译流程
前言在平常测试微信小程序的时候,会对微信小程序进行一下反编译,看看里面有没有泄露敏感信息,如小程序的key、secret、敏感接口,硬编码等。针对一些金融类的小程序,可能还要对其反编译后获取源码,定位加解密算法,配着脚本实现渗透测试。这块相关的知识,网上有比较多的案例,就不细说了。
前段时间某运营商,提出针对支付宝中小程序的渗透测试,就在想能不能把支付宝中小程序像微信一样反编译,看看有没有敏感信息泄露。网上找了一圈,关于支付宝小程序反编译案例较少,参考了网上一些教程,简单记录一下支付宝小程序反编译的过程。。。
前期准备
已经root过的手机(这块模拟器也行-模拟器默认支持支付宝)
安卓adb(安装官网下载最新版本的 Platform Tools-包含 ADB)
定位源码包位置1、连上手机以后Windows进入adb shell然后su切换为管理员权限
adb shell && su
2、然后直接进入支付宝小程序存放目录
cd /data/data/com.eg.android.AlipayGphone/files/nebulaInstallApps/
然后,就 ...
小程序sessionkey泄露漏洞利用
案例介绍闲来无事,在测试某小程序的时候,发现存在sessionkey泄露漏洞。具体流程如下:
1、打开小程序后,点击【用户一键登录】:
2、burp抓包,发现在请求参数中携带了几个比较敏感的字段,如下所示:
三个敏感参数
encryptedData
iv
session_key
3、参考上篇文章,微信小程序登录流程。知道session_key的作用之一是将小程序前端从微信服务器获取到的encryptedData 解密出来。
服务端获取开放数据微信会对开放数据做签名和加密处理。开发者后台拿到开放数据后可以对数据进行校验签名和解密,来保证数据不被篡改。
签名校验以及数据加解密涉及用户的会话密钥 session_key。 开发者应该事先通过 wx.login 登录流程获取会话密钥 session_key 并保存在服务器。为了数据不被篡改,开发者不应该把 session_key 传到小程序客户端等服务器外的环境。
加密数据解密算法接口如果涉及敏感数据(如wx.getUserInfo当中的 openId 和 unionId),接口的明文内容将不包含这些敏感数据。开发者如需 ...
小程序授权&登录&sessionkey&unionid介绍
前言微信小程序相比于普通的应用,很大的一个优势在于不需要进行注册和显式登录,大部分问题可以直接一键微信登录解决。但是,在点击 “授权”、”登录” 的过程中,都做了那些事情呢?
1、获取用户登录凭证:小程序首先会调用微信提供的wx.login接口,获取用户的登录凭证(code)。这个code是一个临时的、有时效性的字符串,用于后续的身份验证。
2、发送请求到开发者服务器:小程序将获取到的code发送到开发者自己的服务器。这一步是为了保护用户的隐私和安全,因为用户的微信敏感信息(如openid、session_key等)不会直接暴露给小程序。
3、开发者服务器与微信服务器交互:开发者服务器将code、小程序的AppID和AppSecret(这是开发者在微信公众平台注册小程序时获得的,用于证明开发者身份的密钥)一起发送给微信服务器进行校验。
4、微信服务器返回用户信息:如果校验通过,微信服务器会返回一个openid和一个session_key给开发者服务器。openid是用户在微信中的唯一标识,session_key是本次会话的密钥,用于后续加密用户数据的解密。
5、开发者服务器返回用户 ...
Gitee搭建免费图床
前言为什么要搭建图床???
hexo默认可以加载本地文件夹和外部URL的图片,搭建图床后主要用来存储图片,方便管理;
可以将md文件+对应路径图片打包,方便管理;
可移植性强。
还有一个原因,这玩意免费啊!!!
Typora+PicGo+Gitee实现图片上传功能 抓紧时间步入正题,Go!
第一步 配置Gitee仓库1、附上码云gitee地址
2、注册登录自己的gitee账号
3、创建仓库,仓库要求公开,so要上传合法图片哒~
步骤一:创建仓库
步骤二:生成私人令牌(请在备忘录中记下生成的私人令牌 )
打开“个人主页”—>“个人设置”—->“私人令牌”
点击 “生成新的令牌” ,提交后,将生成的私人令牌保存好,后面会用到。
第二步 PicGo的下载及相关配置下载地址:https://github.com/Molunerfinn/PicGo/releases
1、首先,下载PicGo的安装包
PicGo官网指南一个图床,一个用于快速上传图片并获取图片URL链接的工具,也完全免费。
2、其次,在PicGo中安装插件
常见问题:
\ ...
hexo主题美化(续)
hexo弹出欢迎弹窗选择一个好看的弹窗首先,既然要弹窗,就要好看,而不是JavaScript里的alert()函数。
这块参考网上文章后,选定使用sweetAlert来实现弹窗(SweetAlert),感觉不错。
获取其JavaScript和CSS文件首先,需要将sweetalert.js和sweetalert.css放到自己博客下。
新建JavaScript文件夹在博客根目录往下找到\themes\next\source\js文件夹,新建sweetalert.js,文件内容请看这里,觉得复制麻烦的可以直接按Crtl+S进行保存。
新建CSS文件在博客根目录往下找到\themes\next\source\css文件夹,新建sweetalert.css,文件内容请看这里。
引入到主题中打开\themes\next\layout_layout.swig,在标签内插入以下语句:
<script src="/js/sweetalert.js"></script><link rel="stylesheet" href=& ...
解决hexo开启懒加载后图片无法立即显示的问题
本文目的主要介绍hexo-lazyload-image(图片懒加载)插件引发的bug以及相关API
问题描述网站开启图片懒加载后,首次加载页面图片不显示,但是刷新一次后会显示。
定位原因为了提升网页的浏览体验,开启了pjax优化,其原理在于pjax封装了ajax实现局部刷新,将网站变成了单页面应用。
懒加载插件如果配置不当,将与pjax插件发生冲突,导致以上bug。
解决办法找到hexo项目的根目录下的站点配置文件_config.yml,具体路径:blog/_config.yml,其中blog是你的项目文件夹。
找到lazyload配置,添上isSPA: true字段即可。
lazyload: enable: true onlypost: false # optional loadingImg: # optional eg ./images/loading.gif isSPA: true # optional
扩展来仔细看一下hexo-lazyload-image 插件的API,它共有5个配置项:
lazyload: enable: true onlyp ...
Hexo禁用调试模式
0x00 前言网站禁用调试模式是一种常见的网站安全措施,旨在防止攻击者利用浏览器开发工具(如Chrome DevTools)对网站进行恶意攻击或窃取敏感信息。禁用调试模式通过限制或禁止开发工具的使用,增强网站的安全防护。
实现网站禁用调试模式的技术方法有多种。一种常见的方法是在网页代码中插入JavaScript代码来检测是否打开了开发工具。如果检测到开发工具被打开,则会禁用页面的一些功能,或将页面重定向到其他页面。这种方法的实现相对简单,但也存在一定的被绕过风险。
另一种更为安全的方法是使用服务器端的技术来检测是否打开了开发工具。服务器端可以检测客户端请求头中的User-Agent字段,以识别浏览器和开发工具的类型。如果检测到请求头中包含开发工具的信息,服务器端可以采取相应的措施来禁止对网站进行攻击。
本文主要介绍通过网站中引入JavaScript代码,禁止攻击者打开DEvtools实现。
0x01 实现步骤新建bandev.js文件在theme对应主题下的新建 source/js/bandev.js(自行修改提示文字)
//禁止右键document.onco ...