Netcat 进入 apache 密码保护目录

Netcat into apache password protected directory

这是一个非常基本的问题,但我不知道怎么弄明白:

我正在使用 netcat 从网站获取 HTTP 响应。示例:

request="GET / HTTP/1.1"
echo -ne $request | nc 127.0.0.1 80

如果网站需要身份验证,我可以发送 POST 请求并在 form-data.

中包含 user/pass

但是 apache 密码保护的目录呢?假设这是在我的 apache.conf:

<Directory "/var/www/html/">
  ...
  AuthType Basic
  AuthName "Authentication Required"
  AuthUserFile "/etc/htpasswd/.htpasswd"
  Require valid-user
</Directory>

当我访问 127.0.0.1 时,系统提示我输入 user/pass。浏览器将请求显示为“stalled”。在我提供凭据后,请求就完成了。如果我检查请求 headers,我在那里找不到我的凭据或任何其他表单数据。

我的问题是:这些凭据是如何发送的?如何使用 netcat 实用程序发送它们?

p.s.: 我对使用 netcat 并没有死心塌地,如果有另一个命令行实用程序可以以简单的方式实现这一点,那也很好。

尝试使用 CURL 而不是 netcat

它们在 Authorization header 中发送,在 base64 中编码(Wireshark auto-decodes 如果您展开 header).

您可以使用 curl:

轻松指定用户名和密码
curl --user name:password localhost

您可以通过使用 -v 查看 header 来了解它是如何工作的,例如:

curl -sv --user name:password localhost

在 header 输出中,您将看到这样一行:

> Authorization: Basic bmFtZTpwYXNzd29yZA==