目录
0x01 废话
很多小伙伴不知道怎么使用burpsuite对基础认证进行报错,这次工作中遇到了,本来没有啥好写的,但是想想还是写下过程吧。
0x02 基础认证介绍
401错误代表用户没有访问权限,需要进行身份认证。比如tomcat的manager平台的登录验证就是401认证:
基础认证的数据包跟往常的POST和GET的包认证方式有那么一丢丢差距,他的请求包是像下面这样的格式:
GET /manager/html HTTP/1.1
Host: 127.0.0.1
Connection: keep-alive
Cache-Control: max-age=0
Authorization: Basic YWRtaW46MTIzNDU2
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.75 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Encoding: gzip, deflate, sdch, br
Accept-Language: zh-CN,zh;q=0.8,en;q=0.6,zh-TW;q=0.4,ko;q=0.2
Cookie: JSESSIONID=xxxxxxxxx;
其中Authorization
这一行才是认证的用户名密码位置:
Authorization: Basic YWRtaW46MTIzNDU2
我们可以看到的是,账号密码是通过加密的方式发送出去的,编码类型是base64,我们可以通过解密验证是否:
解密后格式为 账号:密码
0x03 burp爆破
我们把认证的请求包发送到intruder
中,然后设置好要爆破的地方,这里直接把整个base64
选中,然后点add $
payload这里跟平常爆破POST包和get包的有一丁点不一样,payload type
选择Custom iterator
:
官方文档大意是说我们可以灵活的组合payload,官方举得例子是我们可以组合类似于AB/12
这样的payload
,当然这也就刚好适用于我们要爆破的基础认证,把AB/12
中间的/
换成:
,再base64加密
一下,不就是基础认证了吗?
基础认证的格式如下:
账号:密码
一共3个部分:账号 冒号 密码
我们一个一个来设置,我们先设置自定义迭代器的第一组payload,设置为账号:
我这里使用load
功能从文件中载入了一些账号,也可以自己手动添加,这样第一组payload就设置好了。
第二组payload只有一个值,就是冒号,所以我们如下设置:
第二个设置好之后设置第三个:
三个都设置好之后通过 payload Processing 将内容编码
最后链接中的字符默认是会被编码的
在payload encodeing里面将编码选择项去掉即可,