简介

Http Basic Authentication,HTTP基本认证,是HTTP的4种认证方式之一。 在浏览需要基本认证的网页时,浏览器会弹出一个登录验证的对话框。如下图中TomcatManager APP平台登录验证,就是使用HTTP基本认证。

HTTP基本认证 - 图1

基本流程

  1. 浏览器向服务端发起请求,服务端检查请求头是否含有Authorization,若没有则返回响应码401
    HTTP基本认证 - 图2
  2. 浏览器接收到401响应码后弹出登录验证的对话框,用户手动输入账号密码后,浏览器将账号密码以 账号:密码 的格式,并以Base64加密后放入请求头中新增的Authorization中,再发送给服务器。
    HTTP基本认证 - 图3
  3. 服务器将Authorization中的账号密码取出并进行验证。 若验证通过,则将请求资源返回给浏览器。

    Burp爆破

    抓包

  4. 第一个数据包直接发送,等待返回401且浏览器弹出登录框后,任意输入账号密码再发送并抓包

  5. 将抓到的包含用户名和密码的数据包发送到Intruder模块
  6. 来到Intruder模块下的Positions,设置需要爆破的位置,即被Base64加密的那串字符
    HTTP基本认证 - 图4

    Payload

  7. 然后设置Payloads,这里Payload type选择自定义迭代器Custom iterator,即可以自己组合想要的Payload格式

  8. 前面说过,账号密码的格式为账号:密码,即由账号、冒号:和密码3个部分组成,因此需要在Payload Options处设置组合格式。
  9. Position选择1设置第1部分,即账号部分。可通过Load选择对应的字典,也可以在下面Add处逐个添加
    HTTP基本认证 - 图5
  10. 然后选择2第2部分,这里只有一个冒号:,因此只需在Add处填入:并点击Add添加即可
    HTTP基本认证 - 图6
  11. 最后选择3设置第3部分,这里与第1部分设置账号一样,选择对应的密码字典或逐个添加密码即可

    设置加密

  12. 由于发送过去的账号密码会以Base64加密,因此这里还需要设置加密方式

  13. 在下面Payload Processing中选择Add,在弹框中选择Encode,加密方式选择base64-encode后点击OK即可
    HTTP基本认证 - 图7
  14. 最后点击右上角Start attack开始爆破