2025年云真机-一键抓包的问题解决

云真机-一键抓包的问题解决最近我们的云真机平台需要对标岩鼠 新增抓包的功能 所以专门去看了下岩鼠的抓包页面 发现是通过 mitproxy 来做 iframe 嵌套实现的 那我们也可以借用 mitproxy 来解决我们的问题了 问题 1 本以为事情会很顺利 所以我们先尝试做 demo 的时候 本地先启动了一个 mitproxy 的服务

大家好,我是讯享网,很高兴认识大家。

最近我们的云真机平台需要对标岩鼠,新增抓包的功能,所以专门去看了下岩鼠的抓包页面, 发现是通过mitproxy来做iframe嵌套实现的。那我们也可以借用mitproxy来解决我们的问题了。

问题1

本以为事情会很顺利,所以我们先尝试做demo的时候,本地先启动了一个mitproxy的服务,由于我们是需要有web的页面的, 所以我们的启动命令是:

# web-host跟上的是本机的ip地址 mitmweb --web-port 10000 --no-web-open-browser -p 20000 --web-host 192.168.31.252 

讯享网

在这里插入图片描述
讯享网

直接访问链接是可以正常访问的。但是我们将这个页面以iframe的形式嵌入到我们自己的网站上的时候,结果确不是我们想要看到的。

在这里插入图片描述

在这里插入图片描述

页面并没有正常的加载出来,而通过控制台,我们发现出现了这样的一个错误提示信息。

通过谷歌得到了这样子的信息 X-Frame-Options

X-Frame-Options 有三个可能的值:

讯享网X-Frame-Options: deny X-Frame-Options: sameorigin X-Frame-Options: allow-from https://example.com/ 

换一句话说,如果设置为 deny,不光在别人的网站 frame 嵌入时会无法加载,在同域名页面中同样会无法加载。另一方面,如果设置为sameorigin,那么页面就可以在同域名页面的 frame 中嵌套。

deny表示该页面不允许在 frame 中展示,即便是在相同域名的页面中嵌套也不允许。sameorigin表示该页面可以在相同域名页面的 frame 中展示。allow-from *uri*表示该页面可以在指定来源的 frame 中展示

通过上述的内容,我们大致能够猜测出来,是由于mitmweb的header中设置了deny的结果,不过这个是我们的猜测而已,所以我们还是需要具体确认下才知道。

app.py

def set_default_headers(self): super().set_default_headers() self.set_header("Server", version.MITMPROXY) self.set_header("X-Frame-Options", "DENY") self.add_header("X-XSS-Protection", "1; mode=block") self.add_header("X-Content-Type-Options", "nosniff") self.add_header( "Content-Security-Policy", "default-src 'self'; " "connect-src 'self' ws:; " "style-src 'self' 'unsafe-inline'" ) 

我们可以看到确实在header中添加了这样子的一个deny的情况。所以要解决这个问题我们只能够修改源码来进行解决了。

页面已经可以正常打开了

在这里插入图片描述

问题2

本以为下来就不会有问题了,结果我们操作web上面的一些按钮后,界面均没有任何的响应,通过抓包发现这样子的结果。均为403的状态。

在这里插入图片描述

通过后台的日志我们看到这样子的一个日志信息

WARNING:tornado.general:403 PUT /options (192.168.31.252): XSRF cookie does not match POST argument

看来是嵌套的iframe还进行了xsrf的一些认证了。但是我们知道最新的chrome的版本禁止了内嵌iframe的cookie的传递,所以如果要根本上解决这个问题就比较困难了,所以还是去掉xsrf的认证是最靠谱的了。

所以我们找到了这样子的一个开关

app.py

讯享网def __init__(self, master: "mitmproxy.tools.web.master.WebMaster", debug: bool) -> None: self.master = master super().__init__( default_host="dns-rebind-protection", template_path=os.path.join(os.path.dirname(__file__), "templates"), static_path=os.path.join(os.path.dirname(__file__), "static"), xsrf_cookies=True, cookie_secret=os.urandom(256), debug=debug, autoreload=False, ) .... 

所以这里我们只要xsrf_coookies不启用即可了。

至此 所有的问题都得到了解决了。

小讯
上一篇 2025-03-31 14:23
下一篇 2025-03-30 21:05

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/70034.html