返回介绍

过滤表达式

发布于 2021-07-04 22:55:07 字数 2193 浏览 1060 评论 0 收藏 0

过滤表达式

mitmproxy工具中的许多命令都使用过滤器表达式。过滤器表达式由以下运算符组成:

命令描述
〜a匹配响应资源:CSS,Javascript,Flash,images。
〜b regexBody
〜bq regex请求的Body
〜bs regex响应的Body
〜c intHTTP响应码
〜d regex域名
〜dst regex匹配目标地址
〜e匹配错误
〜h regexHeader
〜hq regex请求Header
〜hs regex响应Header
〜http匹配HTTP流
〜m regex方法
〜marked匹配marked流
〜q匹配无响应请求
〜s匹配response响应
〜src regex匹配来源地址
〜t regexContent-type header
〜tcp匹配TCP流
〜tq regex请求Content-Type Header
〜ts regex响应Content-Type Header
〜u regex网址URL
〜websocket匹配WebSocket流(和HTTP-WebSocket握手流)
!一元非
&
|或者
(...)分组
  • regex是Python风格的
  • 可以将 regex指定为带引号的字符串
  • Header匹配(〜h,〜hq,〜hs)针对的是“name: value”形式的字符串。
  • 没有运算符的字符串将与请求URL匹配。
  • 默认的二进制运算符是&。

查看流选择器

在交互式上下文中,mitmproxy具有一组在当前视图上运行的便捷流选择器:

  • @all 所有流量
  • @focus 当前关注的流程
  • @shown 当前显示的所有流
  • @hidden 当前隐藏所有流
  • @marked 所有标记的流
  • @unmarked 所有未标记的流

这些经常在命令和键绑定中使用。

例子

包含“google.com”的网址:

google\.com

请求的主体包含字符串“test”

~q ~b test

除了文字/ html内容类型的请求以外的所有内容:

!(~q & ~t "text/html")

替换请求中的整个GET字符串(使它生效所需的引号):

':~q ~m GET:.*:/replacement.html'

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文