上海市建设安全协会网站查询考试,资源网站搭建,网站开发管理方案,网络体系结构#x1f935;♂️ 个人主页#xff1a;rain雨雨编程 #x1f604;微信公众号#xff1a;rain雨雨编程 ✍#x1f3fb;作者简介#xff1a;持续分享机器学习#xff0c;爬虫#xff0c;数据分析 #x1f40b; 希望大家多多支持#xff0c;我们一起进步#xff01; … ♂️ 个人主页rain雨雨编程 微信公众号rain雨雨编程 ✍作者简介持续分享机器学习爬虫数据分析 希望大家多多支持我们一起进步 如果文章对你有帮助的话 欢迎评论 点赞 收藏 加关注 目录
一、数据接口分析
1. 抓包分析
2. 加密参数检查
二、加密位置定位
1. 启动器分析
三、JavaScript代码提取与分析
JavaScript源码分析 本文通过细致的步骤分析展示了如何对“某某学堂”网站进行爬虫逆向工程。这个过程包括了加密参数的识别、加密位置的定位、JavaScript代码的提取与分析等多个关键环节。
一、数据接口分析
1. 抓包分析
主页地址某某学堂 抓包通过抓包确定了网站的关键数据接口为Account/LoginPost这是用户登录请求的接口。
2. 加密参数检查 请求参数加密在请求的“载荷”部分发现pass参数是加密的这意味着密码在传输过程中被加密。 请求头加密没有发现请求头被加密。 响应加密没有发现响应数据被加密。 Cookie加密没有发现Cookie被加密。
二、加密位置定位
1. 启动器分析 调用堆栈通过查看启动器中的Login函数调用堆栈找到了可能的加密位置。 加密位置确认在可能的加密位置打上断点重新获取数据抓包进一步分析发现pass参数的加密确实发生在发送ajax请求的位置。 三、JavaScript代码提取与分析 encryptByDES方法通过调试进入encryptByDES方法发现网站使用的是DES加密算法。 密钥和IVDES加密的密钥key和初始化向量iv在代码中是硬编码的这简化了加密过程的复制。 调试验证在返回加密数据的位置打上断点再次登录获取数据返回密文处断住 控制台输出查看通过控制台输出查看对比network负载中的pass数据
JavaScript源码分析
在定位到的加密位置通过调试进入encryptByDES方法可以发现网站是使用的DES加密key和iv都在上方写死的所以可以直接使用标准模块进行加密。 密钥和IV设置函数中使用了固定的密钥_key k1fsa01v和IV_iv k1fsa01v。 加密过程密码通过DES算法和指定的密钥、IV进行加密使用的模式是ECB电子密码本模式填充方式是Pkcs7。 返回值函数返回加密后的字符串这是登录请求中pass参数的值。
var CryptoJS require(crypto-js)function get_pwd(pwd) {var _key k1fsa01v;var _iv k1fsa01v;var keyHex CryptoJS.enc.Utf8.parse(_key);var encrypted CryptoJS.DES.encrypt(pwd, keyHex, {iv: CryptoJS.enc.Utf8.parse(_iv),mode: CryptoJS.mode.ECB,padding: CryptoJS.pad.Pkcs7});return encrypted.toString();
} 文章持续跟新可以微信搜一搜公众号 [ rain雨雨编程 ]第一时间阅读涉及数据分析机器学习Java编程爬虫实战项目等。