这是一个非常基本的问题,但我无法弄清楚:
我正在使用netcat从网站获取HTTP响应。例如:
request="GET / HTTP/1.1"
echo -ne $request | nc 127.0.0.1 80
如果网站需要身份验证,我可以发送 POST 请求,并在表单数据中包含用户/传递。
但apache密码保护目录怎么样?假设这是在我的 apache.conf :
中<Directory "/var/www/html/">
...
AuthType Basic
AuthName "Authentication Required"
AuthUserFile "/etc/htpasswd/.htpasswd"
Require valid-user
</Directory>
当我访问 127.0.0.1 时,系统会提示我输入用户/通行证。浏览器将请求显示为“停滞”。在我提供凭据后,请求已完成。如果我检查请求标头,我就无法在那里找到我的凭据或任何其他表单数据。
我的问题是:这些凭据是如何发送的?如何使用 netcat 实用程序发送它们?
p.s。:我没有使用netcat,如果有另一个命令行实用程序可以用简单的方式实现,那也很棒。
答案 0 :(得分:2)
它们以Authorization
标头发送,以base64
编码(如果您展开标头,Wireshark
会为您自动解码它们。)
答案 1 :(得分:1)
您可以使用curl
轻松指定用户名和密码:
curl --user name:password localhost
您可以使用-v
查看标题来了解其工作原理,例如:
curl -sv --user name:password localhost
在标题输出中,您将看到如下所示的行:
> Authorization: Basic bmFtZTpwYXNzd29yZA==
答案 2 :(得分:0)
尝试使用CURL insted of netcat