欢迎来到 无奈人生 安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

HTTP身份验证渗透测试指南

来源: 作者: 时间:2019-02-24 21:00 点击: 我要投稿
广告位API接口通信错误,查看德得广告获取帮助

在本文中,我们将为读者介绍如何给Apache Web服务器配置密码保护功能,从而限制没有经过身份验证的联机访问者的访问权限,可以向未经身份验证的用户隐藏某些关键的信息;与此同时,我们还会介绍如何对该配置存在薄弱环节的系统进行渗透测试。
HTTP基本身份验证(HTTP Basic Authentication)简介
在HTTP事务上下文中,基本的访问权限认证方式,就是HTTP用户代理在发出请求时提供用户名和密码这种方法。
HTTP基本身份验证(BA)是对Web资源实施访问控制时最简单的一种方法,因为它无需借助于cookie、会话标识符或登录页;相反,HTTP基本身份验证只需使用HTTP头部中的标准字段,从而无需进行“握手”。
不过,BA机制并没有为传输的凭据提供机密性保护:在传输中,它们只是进行了相应的Base64编码,而没有进行任何加密处理或使用其哈希值。因此,我们最好将HTTPS与基本身份验证搭配使用。
有关更多详细信息,请参阅wikipedia.org
实验设置要求
· Apache服务器(Ubuntu14.04)
· 渗透测试试验机(Kali Linux)
· 设置密码身份验证
· 安装Apache实用工具包
首先,让我们通过下面的命令来安装一个名为“htpasswd”的Apache2实用程序包。实际上,htpasswd的作用就是创建和更新用于存储HTTP用户基本身份验证的用户名和密码的flat-file。
sudo apt-get install apache2 apache2-utils

创建密码文件。
现在,我们需要使用htpasswd命令来创建一个密码文件;Apache将使用该文件对用户进行身份验证,并使用/etc/apache2配置目录中的隐藏文件“.htpasswd”来存储密码。
sudo htpasswd -c /etc/apache2/.htpasswd raj
cat /etc/apache2/.htpasswd
gedit etc/apache2/sites-enabled/000-default.conf

在虚拟主机定义中完成访问控制的配置。
现在,我们需要将下面的配置保存在000-default.conf文件中。
        AuthType Basic
        AuthName "Restricted Content"
        AuthUserFile /etc/apache2/.htpasswd
        Require valid-user
   

借助.htaccess文件进行访问控制。
打开Apache主配置文件,并通过.htaccess文件启用密码保护功能,然后,添加下面突出显示的各行内容。
sudo gedit /etc/apache2/apache2.conf
ServerName localhost

为了启用.htaccess规定的相应处理,我们需要将/var/www目录的配置块中AllowOverride指令行中的“None”改为“All”;然后,保存该文件,并重新启动apache服务。
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted

接下来,需要将.htaccess文件添加到需要限制访问的目录中。就本文来说,我希望限制对于整个网站的访问,所以,可以通过限制访问/var/www/html来实现这一目的,不过,读者可以将该文件放在自己希望限制访问的任意目录中:
sudo nano /var/www/html/.htaccess
AuthType Basic
AuthName "Restricted Content"
AuthUserFile /etc/apache2/.htpasswd
Require valid-user
sudo service apache2 restart
在配置.htaccess文件时,我们相应的目录添加了一些选项。下面,让我们看看这些配置的含义。
AuthType Basic:为我们的网站设置基本身份验证。
AuthName“Restricted Contents”:在命令行中显示身份验证的名称。
authuserfile/etc/apache2/.htpasswd:显示身份验证文件的位置。
Require valid-user:已通过身份验证并获得访问权限的用户才能访问网站。

对密码身份验证功能进行确认。
尝试在Web浏览器中访问受限内容,以确认内容是否受到了相应的保护。实际上,这是系统将要求输入用户名和密码,具体如下所示:

如果您将尝试在不进行身份验证的情况下访问网站,则会返回401错误。

如果您是合法用户,并尝试使用有效凭据访问受密码保护的网站,例如,我们已经使用RAJ:123创建了一个帐户来访问Apache HTTP服务:

[1] [2] [3]  下一页

在本文中,我们将为读者介绍如何给Apache Web服务器配置密码保护功能,从而限制没有经过身份验证的联机访问者的访问权限,可以向未经身份验证的用户隐藏某些关键的信息;与此同时,我们还会介绍如何对该配置存在薄弱环节的系统进行渗透测试。
HTTP基本身份验证(HTTP Basic Authentication)简介
在HTTP事务上下文中,基本的访问权限认证方式,就是HTTP用户代理在发出请求时提供用户名和密码这种方法。
HTTP基本身份验证(BA)是对Web资源实施访问控制时最简单的一种方法,因为它无需借助于cookie、会话标识符或登录页;相反,HTTP基本身份验证只需使用HTTP头部中的标准字段,从而无需进行“握手”。
不过,BA机制并没有为传输的凭据提供机密性保护:在传输中,它们只是进行了相应的Base64编码,而没有进行任何加密处理或使用其哈希值。因此,我们最好将HTTPS与基本身份验证搭配使用。
有关更多详细信息,请参阅wikipedia.org
实验设置要求
· Apache服务器(Ubuntu14.04) 无奈人生安全网
· 渗透测试试验机(Kali Linux)
· 设置密码身份验证
· 安装Apache实用工具包
首先,让我们通过下面的命令来安装一个名为“htpasswd”的Apache2实用程序包。实际上,htpasswd的作用就是创建和更新用于存储HTTP用户基本身份验证的用户名和密码的flat-file。
sudo apt-get install apache2 apache2-utils

创建密码文件。
现在,我们需要使用htpasswd命令来创建一个密码文件;Apache将使用该文件对用户进行身份验证,并使用/etc/apache2配置目录中的隐藏文件“.htpasswd”来存储密码。
sudo htpasswd -c /etc/apache2/.htpasswd raj
cat /etc/apache2/.htpasswd
gedit etc/apache2/sites-enabled/000-default.conf

在虚拟主机定义中完成访问控制的配置。 本文来自无奈人生安全网
现在,我们需要将下面的配置保存在000-default.conf文件中。
        AuthType Basic
        AuthName "Restricted Content"
        AuthUserFile /etc/apache2/.htpasswd
        Require valid-user
   

借助.htaccess文件进行访问控制。
打开Apache主配置文件,并通过.htaccess文件启用密码保护功能,然后,添加下面突出显示的各行内容。
sudo gedit /etc/apache2/apache2.conf
ServerName localhost

为了启用.htaccess规定的相应处理,我们需要将/var/www目录的配置块中AllowOverride指令行中的“None”改为“All”;然后,保存该文件,并重新启动apache服务。

www.wnhack.com


    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted

接下来,需要将.htaccess文件添加到需要限制访问的目录中。就本文来说,我希望限制对于整个网站的访问,所以,可以通过限制访问/var/www/html来实现这一目的,不过,读者可以将该文件放在自己希望限制访问的任意目录中:
sudo nano /var/www/html/.htaccess
AuthType Basic
AuthName "Restricted Content"
AuthUserFile /etc/apache2/.htpasswd
Require valid-user
sudo service apache2 restart
在配置.htaccess文件时,我们相应的目录添加了一些选项。下面,让我们看看这些配置的含义。
AuthType Basic:为我们的网站设置基本身份验证。
AuthName“Restricted Contents”:在命令行中显示身份验证的名称。
authuserfile/etc/apache2/.htpasswd:显示身份验证文件的位置。
Require valid-user:已通过身份验证并获得访问权限的用户才能访问网站。
无奈人生安全网


对密码身份验证功能进行确认。
尝试在Web浏览器中访问受限内容,以确认内容是否受到了相应的保护。实际上,这是系统将要求输入用户名和密码,具体如下所示:

如果您将尝试在不进行身份验证的情况下访问网站,则会返回401错误。

如果您是合法用户,并尝试使用有效凭据访问受密码保护的网站,例如,我们已经使用RAJ:123创建了一个帐户来访问Apache HTTP服务:
copyright 无奈人生

[1] [2] [3]  下一页

copyright 无奈人生

。 (责任编辑:admin)
【声明】:无奈人生安全网(http://www.wnhack.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱472701013@qq.com,我们会在最短的时间内进行处理。