MENU

使用 Burp suite 爆破 HTTP Basic 认证

September 12, 2014 • Security

以前一直都是拿 Burp suite 爆破各种使用表单提交的登录认证,今天碰到了一个 HTTP Basic 认证,查了下发现使用 Burp suite 进行爆破同样非常简单。

HTTP Basic 认证

HTTP Basic 认证是简单的请求和响应机制,服务器可以通过它从客户机请求认证信息(用户标识和密码)。客户机在 Authorization 头中向服务器传递认证信息。认证信息是基本 64 位编码的。
下面来举个例子具体说明,假设我们请求的用户名密码均为admin,则首先需要对用户名和密码进行Base64编码:

Base64('admin:admin') = YWRtaW46YWRtaW4=  

则我们的认证请求为:

Authorization: Basic YWRtaW46YWRtaW4=  

客户端请求实例:

GET / HTTP/1.1  
Host: localhost  
Authorization: Basic YWRtaW46YWRtaW4=  

如果认证成功,则服务器会返回 200 的响应:

HTTP/1.1 200 OK  
Date: Sun, 05 Jun 2016 13:56:02 GMT  
Content-Type: application/json; charset=utf-8  
Content-Length: 53  

如果认证失败会返回 401 的响应:

HTTP/1.1 401 Unauthorized  
Date: Sun, 05 Jun 2016 13:56:02 GMT  
status: 401 Unauthorized  
Content-Length: 53  

使用 Burp suite 进行爆破

首先同样的设置代理然后将拦截的请求发送给 Intruder,如下图所示:

1.jpg

随后在 Intruder 中我们选择 Authorization: Basic 后面那部分内容:

2.jpg

在 Payload 设置中类型选择 Custom iterator

3.png

我们的认证信息是类似 username:password 的形式,所示我们需要在 Payload 选项里设置两个 Position,每个 Position 之间使用 : 隔开。关于添加 : 有两种方式,第一种是如果你只准备爆破单个用户,那么可以直接在 Position 1 里的用户名后面直接添加上一个 :;另一种方式是当你准备同时爆破多个用户时,那么就需要在下面添加分隔符,即在 "Separator for position 1" 中添加 :。

4.jpg

之后设置 Position 2 也就是我们想要爆破的密码了,我这里就直接加载本地的密码字典里:

5.jpg

然后就是重点了,我们要在 Payload Processing 里添加一条规则,使得 Burp suite 会自动将我们的用户名密码进行 Base64 编码。点击 add 按钮后选择 Encode 和 Base64-encode 就行了:

6.jpg

到这还没完,因为我们的 Base64 编码经常会以等号结尾,这里我们就需要取消页面最底下的 Payload Encoding 选项,不让 Burp suite 把我们的编码后数据中的等号在进行 URL 编码了。

至此,就可以开始进行 HTTP Basic 认证的爆破了,至于爆破的结果吗,那就取决于你使用的字典咯,这个完全随缘了~

Archives QR Code
QR Code for this page
Tipping QR Code