知识点:
- 通过burpsuite 对用户名密码逐一进行爆破,不一样的响应码,表示可能正确的用户名或者密码。
- 通过burpsuite对用户名密码进行爆破,细微的报错信息可以识别密码是否正确。
- 有的网站当用户名正确的时候,才会进行密码验证,长密码通过验证用的时间更长,可以利用不同的时间,从爆破结果中找出正确密码。
- 如果多次尝试IP被锁定,可以在html请求中使用X-Forwarded-For 进行IP代理,格式:
Forwarded-For:192.168.&0&
Forwarded-For:&0&
- 注:
Forwarded-For
字段下必须有空行- 不同的响应码代表不同的含义
- 200 :表示连接成功
- 302:资源存在,但被重定向
- 403:表示资源存在,但是禁止访问
实验:
第一步:
通过burpsuite代理访问登录页面,输入随机密码,出现报错信息: Invalid username or password.
第二步:
通过HTTPhistory 页面找到最后一次/login页面的POST请求,从返回结果查找,Invalid username or password.
是否存在,将其发生到Repeater
。
第三步:
在html请求中使用X-Forwarded-For
字段,进行IP代理,防止多次尝试后被禁止访问。
第四步:
输入一个长密码(大于100),并将请求发送到intruder,选中X-Forwarded-For
和 username的值准备进行爆破(password的值不选择)。
第五步:
选择Pitchfork 攻击:
第六步:
设置有效载荷 Payloads,并开始攻击。
payload set 1:
- 将
payload type
值设为Numbers
- 范围设置为 0 至254,每执行一次加 1
payload set 2:
- 将
payload type
值设为Simpelist
- 将 用户名字典(实验室给的)粘贴到
Payload Options[Simple list]
第七步:
在爆破结果中选择Columns
,勾选Response received
与Response completed
。
第八步:
找到Response received
与Response completed
间隔最长的payload2 就是用户名。announce 或者amarillo
第九步:
将用户名替换为上一步找到的用户名,用同样的方式对password进行爆破,找到password
第十步:
返回登陆界面,登录成功。