【问题标题】:Port Knocking UDP with Javascript in Browser在浏览器中使用 Javascript 敲击 UDP 端口
【发布时间】:2014-12-18 22:36:40
【问题描述】:

所以我正在尝试从 javascript 发送端口敲击序列。

使用 websockets 的 TCP 部分很简单。

我读到 WebRTC 是浏览器提供的最接近发送 UDP 数据包的功能......但 WebRTC 只是为了尝试发送 UDP“敲门”而需要消化很多东西。

是否甚至可以使用 WebRTC 通过 UDP “敲门”?如果是这样,请提供一个简单的例子。我只是在寻找一个简单的工作示例。 IE。要通过 TCP “敲门”,您可以使用以下内容:

var sock = new WebSocket("ws://"+ host +":"+ port);

【问题讨论】:

  • 不,无法从浏览器发送 UDP 数据包。
  • @symcbean 我不同意这种说法。可以从浏览器发送 UDP 数据包。
  • @wpp:您的示例不从浏览器发送 UDP - 它创建了一个在浏览器中运行的自定义扩展。也可以使用 ActiveX 或 Java 实现此结果 - 但它需要在客户端上安装自定义组件。
  • @symcbean 我的示例没有创建扩展。它使用 WebRTC ICE Gathering(发送 UDP 数据包以确定媒体会话的可能候选者)。还是我误会了什么?
  • 值得注意的是,端口敲门很容易受到网络流量嗅探的影响,因为敲门序列没有加密。有一些方法可以解决该漏洞cryptoknockfwknopsKnock。然而,它们都不是为在网络浏览器中工作而设计的。

标签: javascript html browser webrtc


【解决方案1】:

实际上可以通过浏览器发送UDP数据包。

您可以编写一个 chrome 扩展程序(应用程序),让您可以访问 https://developer.chrome.com/apps/sockets_udp(manifest.json 中的"sockets": {...})。

或者,就 WebRTC 而言:

var pc = new webkitRTCPeerConnection(
    { "iceServers": [{ "url": "stun:localhost:1234" }] }
);

pc.createOffer(function (sessionDescription) {
    pc.setLocalDescription(sessionDescription);

}, function(error) {
    alert(error);
}, { 'mandatory': { 'OfferToReceiveAudio': true, 'OfferToReceiveVideo': true } });

还有一个快速的 ruby​​ 脚本

需要“套接字”

$port = 1234

t = Thread.start do
  server = UDPSocket.open
  server.bind(nil, $port)
  4.times do
    a = server.recvfrom(12364)
    p a
    p server.send "ping", 0, a[1][2], a[1][1]
  end
end

t.join

["\x00\x01\x00\x00!\x12\xA4B0PgJcgcqalrO", ["AF_INET", 51881, "192.168.0.27", "192.168.0.27"]] 4 ["\x00\x01\x00\x00!\x12\xA4Bbmfxf2ABsZws", ["AF_INET", 53092, "192.168.0.27", "192.168.0.27"]] 4 ["\x00\x01\x00\x00!\x12\xA4B0PgJcgcqalrO", ["AF_INET", 51881, "192.168.0.27", "192.168.0.27"]] 4 ["\x00\x01\x00\x00!\x12\xA4Bbmfxf2ABsZws", ["AF_INET", 53092, "192.168.0.27", "192.168.0.27"]]]

我不确定这是否符合“端口敲击序列”的条件。

参考:https://www.webrtc-experiment.com/docs/webrtc-for-beginners.html

【讨论】:

    猜你喜欢
    • 2019-09-29
    • 2013-07-10
    • 1970-01-01
    • 1970-01-01
    • 2017-03-11
    • 1970-01-01
    • 2013-02-12
    • 1970-01-01
    相关资源
    最近更新 更多