问题标签 [man-in-the-middle]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
security - 是否可以与用户建立安全连接,即使重定向到 HTTPS?
所以这是一个有点宽泛的问题,我知道,但我希望比我更聪明的人能提供一个总结答案,帮助我总结 SSL 的所有细节。
最近我看了一段 Moxie Marlinspike 在 BlackHat 做演讲的视频,一小时结束后,我心想,“我做什么并不重要。对于一个坚定的黑客来说,总有办法进来的。” 我记得他的最后一个示例,在该示例中,他演示了即使在用户输入 HTTP 地址直接转到 HTTPS 时使用重定向,攻击者仍有机会通过 MITM 插入自己。
因此,如果浏览器始终默认使用 HTTP,而用户很少直接在地址栏中输入 HTTPS 地址,那么监听对银行 X 网站的访问的攻击者将始终有机会在 HTTP -> HTTPS 重定向期间获得控制权。我认为他们必须在同一个网络上,但这并不是什么安慰。似乎 Marlinspike 的观点是,除非我们直接将 HTTPS 作为标准而不是替代方案,否则这将始终是一个问题。
我是否正确理解这一点?如果攻击者可以在过渡期间使用 MITM 来获得控制权,那么重定向到 HTTPS 的意义何在?有没有人知道可以采取哪些预防措施来保护自己?通过混淆 HTTPS 链接的 javascript 重定向(因此它们不能在传输过程中被剥离)会有所帮助吗?任何想法将不胜感激!
ubuntu - ettercap过滤不起作用
我不能使用 ettercap 过滤器。我什至在写我能想到的最简单的过滤器:
但即使这样也行不通。当我使用 etterfilter 编译它并运行时:
sudo ettercap -F /tmp/filter.ef -T -M arp -i wlan1 /192.168.1.6/ //
没有打印味精。通过数据包可视化,我确实看到了 TCP 数据包,但即使 ettercap 说“从 /tmp/filter.ef 加载的内容过滤器”,过滤器似乎也无法正常工作。
为了解决这个问题,我尝试启用 ip_forward,并尝试删除“#”登录,/etc/etter.conf
因此它将使用 iptables 作为 redir_command(第 168-169 行)
我也试过把它放在 askubuntu.com 上
https://askubuntu.com/questions/251866/ettercap-filtering-doesnt-work
你知道如何使过滤工作吗?
我正在ettercap NG-0.7.4.2
使用Ubuntu 12.10
security - SSL 和中间人的误解
我已经阅读了大量与此问题相关的文档,但我仍然无法将所有部分放在一起,所以我想问几个问题。
首先,我将简要描述我所理解的身份验证过程,因为我可能在这方面犯了错误:客户端启动连接,服务器使用公钥、一些元数据和数字签名的组合来响应受信任的权威。然后客户端决定她是否信任服务器,用公钥加密一些随机会话密钥并将其发回。此会话密钥只能使用存储在服务器上的私钥解密。服务器执行此操作,然后 HTTPS 会话开始。
所以,如果我在上面是正确的,那么问题是在这种情况下中间人攻击是如何发生的?我的意思是,即使有人用公钥拦截了服务器(例如 www.server.com)的响应,并且有办法让我认为他是 www.server.com,他仍然无法解密我的会话密钥没有私钥。
说到相互身份验证,是否完全与服务器对客户端身份的信任有关?我的意思是,客户端已经可以确定她正在与正确的服务器通信,但是现在服务器想要找出客户端是谁,对吗?
最后一个问题是关于相互认证的替代方案。如果我在所描述的情况下充当客户端,如果我在 SSL 会话建立后在 HTTP 标头中发送登录名/密码怎么办?正如我所看到的,无法拦截此信息,因为连接已经安全,服务器可以依赖它来识别我。我错了吗?与相互身份验证相比,这种方法的缺点是什么(只有安全问题很重要,而不是实现复杂性)?
apache - 使用带有 Apache 的 mod_proxy 操作 HTML,例如删除广告
现在这只是一个技术挑战,但基本上我想做以下事情:
创建一个基于 web 的反向(网关)代理mod_proxy
,mod_proxy_html
它不仅重写 HTML url 以匹配代理的主机名,而且重写或操作正在代理的 HTML。
这种对“中间人”网关代理的操作将允许人们做各种事情,例如:
- 移除广告
- 将文本从一种语言翻译成另一种语言
- 以其他方式破解或“改进”原始网站
当然,它也可能被用于很多不好的事情,但这超出了这个问题的范围。
我知道它会mod_proxy_html
解析原始 HTML 以重写所有 URL,但它是否也允许我编写自己的代码来评估和操作正在解析的 HTML?或者还有其他模块吗?
或者,是否有可用的反向代理可以做到这一点?我愿意适应任何适合此目的的语言。
wcf - 如何保护对 Web 服务的调用不被看到
我正在使用 silverlight 5 和 WCF .. 并且该站点使用 HTTPS 保护。但是,如果我使用 fiddler,我可以在标题中看到: GET /ClientBin/XXXX-Web-MyService.svc/binary/GetUsers
如果我把它直接放在我的域之后:https ://www.mydom.com/ClientBin/XXXX-Web-MyService.svc/binary/GetUsers
它将从表格用户那里下载所有数据。我怎样才能隐藏和保护这些信息不被看到!!没有使用 SSL 吗?如果我使用 https,为什么这仍然可见!?
谢谢你。
编辑:我最初的问题是一种“未受过教育”的问题,对此我深表歉意,
我找到了有关该主题的更多信息并进行了更多研究。在这个关于 SO 的 Q 中,解释了为什么提琴手能够解密和查看通过 https 发送的请求和响应。
如果提琴手 2 可以解密所有通过 HTTPS 的调用,那么 SSL 有什么意义?
为了让事情变得更加困难,这个问题的常见解决方案是使用
“证书固定”
,这需要使用 System.Net.ServicePointManager,它不包含在 System.Net 命名空间的 silverlight 实现中。
所以在这里我坚持使用 SSL 证书。任何具有 Web 调试基本知识的人都可以“破解”我为此付出的代价。
android - 是否可以使用 SSL 证书作为中间 CA 证书?
我正在 Android 上设置 MITM 测试环境,我需要伪造假证书,然后将其呈现给应用程序。为了实现这一点,我需要我的 CA 是 Android 的受信任的,这意味着我必须手动安装我的 CA 证书。
我想避免这个特定的步骤。
我正在考虑获得由 GoDaddy 或 GeoTrust 颁发的正确(= 购买)证书,它们都受 Android 信任。但是我必须使用这个证书作为伪造的中间 CA。
是否可以?有没有我没有考虑到的逻辑/实际限制?
android - Android 防止 SSL 的中间人攻击
我在我的 Android 应用程序中使用 HTTPS 与我自己的 API 进行通信。当我进行数据包嗅探时,我看不到任何好的信息。但是,当我使用 Fiddler2 之类的软件在我的 Android 上安装受信任的证书时,我可以清楚地看到我所有的 HTTPS 调用,这很危险。
问题与这个人非常接近,但在 Android 而非 iPhone 中: 从 fiddler 隐藏 iOS HTTPS 调用
我正在使用 loopj 库进行 https 调用:Android Asynchronous Http Client http://loopj.com/android-async-http/
我该如何处理这样的漏洞?(我知道如何在概念上处理它,但我需要示例代码)
filter - 使用 ettercap 更改请求参数
我正在尝试修改 HTTP GET 方法的请求参数,但是我编写的过滤器没有按预期工作。我什至不确定这是否可以使用 ettercap。到目前为止,我编写了以下过滤器:
即使 URL 中出现“过期”,也不会打印该消息。我怀疑如果模式包含在消息正文中,它会起作用,但我需要修改 URL 部分。是否可以使用过滤器或任何其他 Ettercap 机制来实现?
security - 同域 JSONP 安全性
以下场景在同一个域内(不是跨域)对中间人攻击的脆弱性如何?
不安全页面上的表单将包含敏感数据(在查询字符串中)的 JSONP 请求提交到安全页面。
ssl - 如何使用 socat 将传输的数据分叉到脚本中?
我想用socat分析客户端和服务器之间传输的数据。我已经设法使用以下命令将socat设置为中间人:
虽然我可以看到传输的数据,但我想将其发送到脚本以进行处理以供以后分析。
有谁知道解决方案,以便我可以将每个传输的数据包发送到脚本?