JavaScript逆向XHR/AJAX请求断点设置与参数追踪

在JavaScript逆向工程中,追踪和分析XHR/AJAX请求是关键技能。本文将结合Fiddler和Charles Proxy工具,详细讲解如何设置断点和追踪参数。

一、断点设置与请求捕获

(一)Chrome开发者工具中的XHR断点

  1. 设置断点:在Chrome开发者工具的“Sources”面板中,找到“XHR/Breakpoints”部分,输入要匹配的URL子字符串,如api.example.com。当发送匹配的XHR请求时,开发者工具会自动暂停。

  2. 查看网络活动:在“Network”面板中,查看所有网络请求的详细信息,包括请求方法、状态码、请求头和响应体。

(二)Fiddler中的断点设置

  1. 全局断点:在Fiddler中,点击“Rules”菜单,选择“Automatic Breakpoints”,再选择“Before Requests”或“After Responses”。

  2. 局部断点:在命令行窗口中输入bpu [URL],仅拦截指定URL的请求。

(三)Charles Proxy中的断点设置

  1. 全局断点:在Charles中,选择“Proxy” > “Breakpoints Setting”,勾选“Enable Breakpoints”,然后添加需要拦截的域名。

  2. 局部断点:在会话列表中找到具体的请求或响应,右键点击并选择“Breakpoints”,选择“Break before request”或“Break after response”。

二、参数追踪与分析

(一)追踪请求参数

  1. Chrome开发者工具:在“Network”面板中,查看请求的详细信息,包括请求头和请求体。通过断点设置,可以在请求发送前查看和修改参数。

  2. Fiddler:在请求被拦截时,右键点击会话,选择“Edit Request”,修改请求参数。

  3. Charles Proxy:在会话列表中找到请求,查看和编辑请求内容。

(二)追踪响应内容

  1. Chrome开发者工具:在“Network”面板中,查看响应的详细信息,包括响应头和响应体。通过断点设置,可以在响应返回前查看和修改内容。

  2. Fiddler:在响应被拦截时,右键点击会话,选择“Edit Response”,修改响应内容。

  3. Charles Proxy:在会话列表中找到响应,查看和编辑响应内容。

三、实战案例:破解加密请求

(一)使用Chrome开发者工具

  1. 设置断点:在xhr.send行设置断点,捕获请求。

  2. 查看调用栈:在右侧的“Call Stack”中查看调用顺序,找到可能的加密函数。

  3. 分析参数:在“Scope”面板中查看变量,找到加密参数的生成逻辑。

(二)使用Fiddler

  1. 设置断点:在请求开始时设置断点,捕获请求。

  2. 修改请求:在拦截的请求中,修改加密参数,测试不同的请求场景。

(三)使用Charles Proxy

  1. 设置断点:在请求开始时设置断点,捕获请求。

  2. 模拟弱网:通过Charles的弱网模拟功能,测试加密请求在网络不稳定时的表现。

(四)具体案例:破解某网站的登录接口

假设我们要破解一个网站的登录接口,该接口使用了加密参数。以下是详细的逆向步骤:

  1. 捕获请求:使用Fiddler或Charles Proxy捕获登录请求。

  2. 分析请求参数:查看请求体中的加密参数,例如sign参数。

  3. 设置断点:在Chrome开发者工具中,找到生成sign参数的函数,设置断点。

  4. 调试加密逻辑:逐步执行代码,查看加密参数的生成过程,记录每一步的变量变化。

  5. 修改参数:在Fiddler或Charles Proxy中修改加密参数,测试不同的请求场景。

  6. 验证结果:查看服务器响应,验证修改后的参数是否有效。

四、总结

在JavaScript逆向工程中,掌握XHR/AJAX请求的断点设置和参数追踪是必不可少的技能。通过Chrome开发者工具、Fiddler和Charles Proxy,我们可以轻松捕获和修改网络请求,深入分析加密逻辑。

 

你可能感兴趣的:(JavaScript逆向基础,javascript,ajax,okhttp)