如何在文件中发送HTTP请求?

时间:2011-11-14 22:35:35

标签: security http http-get netcat

我正在学习计算机安全性,并对命令有疑问。我有一个易受攻击的Web服务器,我可以通过使用telnet命令利用缓冲区溢出,然后发送带有超长URL的http get。 URL将溢出缓冲区。我知道这肯定有用。但是现在,我想使用netcat来自动化这个过程。到目前为止,我有

netcat localhost 8080 < payload1

我将它发送到localhost,因为我在同一台计算机上运行服务器和攻击。 Payload1当前是格式错误的HTTP Get语句。但是,服务器无法理解这一点,因为它无法打开文件以查看HTTP Get语句。因此,我的问题是:如何使HTTP Get语句可执行,或者如何让服务器识别文件中的HTTP Get?

谢谢!

编辑: 看起来除了其他东西之外,拥有uri的req是0.或者至少它是我用GDB检查的时候。这是给我一个问题的代码行:

  if (req->uri == NULL || req->method == NULL ||
      req->headers == NULL || req->version == NULL) {
          return 0;
  }

GDB在if语句中说它是一个分段错误。

我知道这可能并不重要,因为服务器的其余代码不存在。但是,netcat语句发送的文件是:

get /aaaaaaaaaaaaAAAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAddddddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa http/1.1

如果我使用telnet传输它,服务器确实崩溃,所以我知道netcat有问题。有一个声明称,有效负载1需要采用DOS格式,并带有CRLF结束线。为了检查这一点,我将文件转移到了Windows机器上并且显示正常但是我想知道是否还有其他方法可以检查这个?

1 个答案:

答案 0 :(得分:0)

您看到什么错误会让您认为服务器无法读取文件?使用您使用的命令行,“服务器”不读取文件,您的操作系统shell打开文件并将其用作netcat进程的标准输入。

所以我请你:

  1. 检查payload1的路径。您可能需要使用nc localhost 8080 < /path/to/payload1
  2. 之类的内容
  3. 检查您的服务器是否正在侦听TCP端口8080
  4. 如果这些都不起作用,请提出一些错误消息/您遇到的问题的症状
  5. 更新(基于问题编辑):

    这里的客户端是netcat。根据您的编辑,似乎服务器正在崩溃。所以请求将进入服务器。你可能只是发现了服务器软件的另一个错误(除了原始的缓冲区溢出)。当您尝试使用telnet时,您是否发送了一个简短的URI?