技术分享 | 多种测试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身份验证的方法》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

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

Agile Web Application Development with Yii 1.1 and PHP5

Agile Web Application Development with Yii 1.1 and PHP5

Jeffrey Winesett / Packt Publishing / 2010-08-27

In order to understand the framework in the context of a real-world application, we need to build something that will more closely resemble the types of applications web developers actually have to bu......一起来看看 《Agile Web Application Development with Yii 1.1 and PHP5》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具