httpcanary动态注入_HttpCanary使用指南——正则匹配注入

HttpCanary于v2.11.0版本上线了正则匹配注入功能。顾名思义,就是使用正则表达式或者匹配字符串,动态修改网络请求数据中的部分数据。

举个例子:

{

"date": "30日星期天",

"high": "高温 30℃",

"fengli": "",

"low": "低温 23℃",

"fengxiang": "西南风",

"type": "多云"

}

复制代码

我们希望将网络请求体中这段数据中的符号℃修改为中文摄氏度,即:

{

"date": "30日星期天",

"high": "高温 30摄氏度",

"fengli": "",

"low": "低温 23摄氏度",

"fengxiang": "西南风",

"type": "多云"

}

复制代码

如果使用常规的断点方式手动修改(例如HttpCanary的动态注入)操作起来极为不方便,但是如果使用正则表达式或者字符串匹配来动态替换修改则极为容易。HttpCanary于v2.11.0版本开始正式支持此功能,这篇博客主要讲解如何使用正则匹配功能修改数据。

一、使用限制

正则匹配注入功能只能修改文本类型数据,如果是图片、视频等非文本则不支持,HttpCanary会根据MimeType来判定是否支持。目前支持的MimeType类型如下:

application/javascript

application/x-www-form-urlencoded

application/multipart-formdata

application/xml

text/html

text/plain

application/json

text/json

text/css

text/csv

text/csv

image/svg+xml

如果有其它文本类型的MimeType不在以上范围内,可以反馈给我,后面版本加上。

此外,目前正则匹配注入功能还限制了只适用小于32k的数据量,大数据量暂时尚不支持。

二、使用方式

正则匹配注入需要依赖于静态注入器,它是静态注入器的一种使用方式。首先,首页选定需要注入的请求长按,选择静态注入,打开静态注入编辑页面。

当需要修改请求体或者响应体的时候,点击相应编辑按钮,然后选择规则替换,进入规则编辑器。

2.1 字符串匹配替换

字符串匹配替换是指查找目标数据中与指定字符串完全匹配的子字符串并进行替换,例如将所有 “℃” 替换成 “摄氏度”。

测试范例:

https://www.apiopen.top/weatherApi?city=南京

复制代码

我们在规则编辑器中新增一个规则(无需勾选正则表达式):

新建好规则后,可以通过预览对比下注入效果。

规则匹配注入支持多个规则同时应用,例如可以同时将code=200修改为code=400:

创建完成注入器后,我们通过RestClient实际发送请求看下注入效果。

注入效果非常完美!

2.2 正则匹配替换

字符串匹配替换虽然能够解决绝大多数问题,但是很明显仍然不够灵活。

比如说,我希望将下方数据中的fengxiang值 “西南风” 替换为 “自然风”,但是原始请求结果中不一定是 “西南风”,也可能是 “东北风”、“东风”、“西风”等等风。这种情况除非枚举,否则很难做到完美替换。这时候就是正则表达式上场的时候了。

{

"date": "30日星期天",

"high": "高温 30℃",

"fengli": "",

"low": "低温 23℃",

"fengxiang": "西南风",

"type": "多云"

}

复制代码

我们同样在规则编辑器中添加一条规则,不过要勾选上正则表达式。写一个简单的正则表达式来动态匹配“xx风”。

预览效果如下:

完美!

同样的,正则表达式支持使用$1来匹配()内的值进行替换,再次以上面的json数据为例,我希望修改成如下效果:

{

"date": "30日星期天",

"high": "30摄氏度 高温",

"fengli": "",

"low": "23摄氏度 低温",

"fengxiang": "西南风",

"type": "多云"

}

复制代码

其中 “高温 30℃” 修改为了 “30摄氏度 高温”,“低温 23℃” 修改为了 “23摄氏度 低温”,也就是既将 “℃” 符号修改为 “摄氏度” 又将高低温移动到了后面。

这种情况就可以使用正则表达式的 $和() 来灵活替换,正则如下:

其中第一个括号内的内容使用$1保留,第二个括号内的内容使用$2保留,替换时进行重新组装。效果如下:

最后,使用RestClient实际请求看下效果:

2.3 关于正则表达式

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值