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

2023-10-08 03:10

本文主要是介绍云真机-一键抓包的问题解决,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

最近我们的云真机平台需要对标岩鼠,新增抓包的功能,所以专门去看了下岩鼠的抓包页面, 发现是通过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 = mastersuper().__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不启用即可了。

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

这篇关于云真机-一键抓包的问题解决的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/162298

相关文章

Nginx启动失败:端口80被占用问题的解决方案

《Nginx启动失败:端口80被占用问题的解决方案》在Linux服务器上部署Nginx时,可能会遇到Nginx启动失败的情况,尤其是错误提示bind()to0.0.0.0:80failed,这种问题通... 目录引言问题描述问题分析解决方案1. 检查占用端口 80 的进程使用 netstat 命令使用 ss

IDEA编译报错“java: 常量字符串过长”的原因及解决方法

《IDEA编译报错“java:常量字符串过长”的原因及解决方法》今天在开发过程中,由于尝试将一个文件的Base64字符串设置为常量,结果导致IDEA编译的时候出现了如下报错java:常量字符串过长,... 目录一、问题描述二、问题原因2.1 理论角度2.2 源码角度三、解决方案解决方案①:StringBui

mybatis和mybatis-plus设置值为null不起作用问题及解决

《mybatis和mybatis-plus设置值为null不起作用问题及解决》Mybatis-Plus的FieldStrategy主要用于控制新增、更新和查询时对空值的处理策略,通过配置不同的策略类型... 目录MyBATis-plusFieldStrategy作用FieldStrategy类型每种策略的作

linux下多个硬盘划分到同一挂载点问题

《linux下多个硬盘划分到同一挂载点问题》在Linux系统中,将多个硬盘划分到同一挂载点需要通过逻辑卷管理(LVM)来实现,首先,需要将物理存储设备(如硬盘分区)创建为物理卷,然后,将这些物理卷组成... 目录linux下多个硬盘划分到同一挂载点需要明确的几个概念硬盘插上默认的是非lvm总结Linux下多

Python Jupyter Notebook导包报错问题及解决

《PythonJupyterNotebook导包报错问题及解决》在conda环境中安装包后,JupyterNotebook导入时出现ImportError,可能是由于包版本不对应或版本太高,解决方... 目录问题解决方法重新安装Jupyter NoteBook 更改Kernel总结问题在conda上安装了

pip install jupyterlab失败的原因问题及探索

《pipinstalljupyterlab失败的原因问题及探索》在学习Yolo模型时,尝试安装JupyterLab但遇到错误,错误提示缺少Rust和Cargo编译环境,因为pywinpty包需要它... 目录背景问题解决方案总结背景最近在学习Yolo模型,然后其中要下载jupyter(有点LSVmu像一个

Goland debug失效详细解决步骤(合集)

《Golanddebug失效详细解决步骤(合集)》今天用Goland开发时,打断点,以debug方式运行,发现程序并没有断住,程序跳过了断点,直接运行结束,网上搜寻了大量文章,最后得以解决,特此在这... 目录Bug:Goland debug失效详细解决步骤【合集】情况一:Go或Goland架构不对情况二:

解决jupyterLab打开后出现Config option `template_path`not recognized by `ExporterCollapsibleHeadings`问题

《解决jupyterLab打开后出现Configoption`template_path`notrecognizedby`ExporterCollapsibleHeadings`问题》在Ju... 目录jupyterLab打开后出现“templandroidate_path”相关问题这是 tensorflo

如何解决Pycharm编辑内容时有光标的问题

《如何解决Pycharm编辑内容时有光标的问题》文章介绍了如何在PyCharm中配置VimEmulator插件,包括检查插件是否已安装、下载插件以及安装IdeaVim插件的步骤... 目录Pycharm编辑内容时有光标1.如果Vim Emulator前面有对勾2.www.chinasem.cn如果tools工

最长公共子序列问题的深度分析与Java实现方式

《最长公共子序列问题的深度分析与Java实现方式》本文详细介绍了最长公共子序列(LCS)问题,包括其概念、暴力解法、动态规划解法,并提供了Java代码实现,暴力解法虽然简单,但在大数据处理中效率较低,... 目录最长公共子序列问题概述问题理解与示例分析暴力解法思路与示例代码动态规划解法DP 表的构建与意义动