巧用fiddler做线上验证

之前看到一篇文章说,现在用fiddler做测试的很少,基本都被F12替代了,其实我挺为fiddler抱不平的,毕竟fiddler能做的事情很多~

以一个小案例来说:

举办一个比赛,到了决赛时临时要出一个入围决赛的名单展示。测试环境我可以通过改后台比赛日期去做测试。但是到了线上就不可能去改日期了。这时候fiddler的mock就很重要了。

以我们的测试场景为例。前端是根据接口的某个字段去判断是否进入决赛,而展示入围名单的。那就可以autoresponse功能的mock来处理这个字段,然后让前端展示排行榜做一下线上认证。

页面验证:

### 房天下登录逆向工程分析方法 #### 1. 初步理解目标系统的加密机制 房天下的登录功能通常会采用一定的安全措施来保护用户的密码和其他敏感数据。根据已知的信息,在涉及 `encrypt` 的 JavaScript 加密逻辑时,可以通过抓包工具定位到具体的加密实现位置[^4]。这一步的关键在于找到前端代码中负责处理用户输入并将其转换为服务器端可接受形式的部分。 #### 2. 使用抓包工具捕获网络请求 为了深入研究其加密算法,可以利用诸如 Fiddler 或 Burp Suite 这样的抓包软件拦截浏览器发出的数据流。当尝试模拟一次正常登录操作时,应特别注意观察 POST 请求中的 payload 数据结构以及任何可能被标记为 “encrypted” 的字段内容变化情况。这些信息有助于后续反编译工作开展方向的确立。 #### 3. 定位具体加密函数及其依赖库 一旦确认了哪些参数经过了特殊加工,则需返回源码层面寻找对应的脚本文件。借助开发者控制台设置合适的断点可以帮助精确定位实际执行加解密运算的位置。如果发现该部分采用了第三方JavaScript 库 (比如 CryptoJS),则还需要下载相应版本以便本地测试验证。 #### 4. 调试与重现加密流程 获取完整的加密逻辑之后,可以在 Visual Studio Code 中配置 Node.js 环境或者直接运行 Python 脚本来重新构建整个过程。此阶段需要注意调整好所有必要的环境变量,并确保最终生成的结果能够匹配线上服务预期接收的形式。 #### 5. 结合逆向思维优化解决方案 在整个过程中保持开放态度非常重要;有时候看似复杂难解的问题换个角度思考反而迎刃而解。正如提到过的,“很多过程都是可逆的”,所以在遇到瓶颈的时候不妨考虑是否存在其他替代路径达成相同目的[^2]。 ```javascript // 示例:假设这是从房天下网站提取出来的简化版加密逻辑 function encrypt(pwd, publicKey) { const rsa = new JSEncrypt(); rsa.setPublicKey(publicKey); return rsa.encrypt(pwd); // 返回加密后的字符串 } ``` 上述代码片段展示了如何基于公钥对明文密码进行 RSA 加密的一个简单例子。当然实际情况可能会更加繁琐一些,但基本思路大致如此。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值