0

我还没有找到任何对 C# 中 CloudFlare 挑战的回应。

我将如何构造 SSL Heartbeat 请求并将其从 C# 控制台应用程序发送到给定的 URL?(应该与https://www.cloudflarechallenge.com合作)

我什至不确定从哪里开始构建请求。

然后,我想以某种可用格式获得响应,例如byte[].

这基本上是我完成申请所需的方法:

private byte[] ExploitHeartBleed(string pURL, string pToSend, int pLength, int pPort = 443)
{
    byte[] response = new byte[];

    //Make TCP Request
    TcpClient client = new TcpClient(pURL, pPort);
    // Form Heartbeat Request
    // Read Response, save to 'response'

    //Return Response
    return response;
}

任何帮助,将不胜感激!

4

1 回答 1

1

您应该首先与端口 443 建立 TCP 连接。

然后,阅读关于 TLS(传输层安全)和TLS Heartbeats的 RFC 。您正在寻找服务需要处于什么状态才能回复心跳、需要发送哪些数据包才能将其更改为该状态以及这些数据包的格式。

至少后一份文件很短。

最后一点:您可能不想使用现有的 HTTPS 库代码,因为它会发送正确的长度,如果它甚至完全支持心跳。开始学习 Sockets API。它比您以前可能用于“Web 应用程序”的级别要低,但足够简单,对于有经验的程序员来说不应该成为障碍。

于 2014-04-16T00:32:14.297 回答