一、对某系统进行安全测试,检查登录页面的安全性
可以看到用户名、密码等信息以POST的方式进行提交,POST内容示例如下:
{"sign":"encode by base64","ts":123456,"loginType":"xx"}
二、对BASE64进行解码
通过解码可以看到其格式为{"username":"admin","password":"admin","securityToken":"other meta"}。
因此,可以尝试按照此格式将密码替换成字典,然后再采用BASE64进行编码处理,将得到的BASE64字符串替换掉报文中的该字段进行爆破测试。
此格式分为三段:
第一段(固定不变):{"username":"
第二段(设置为字典):admin
第三段(固定不变):","password":"admin","securityToken":"other meta"}。
三、猜解过程
1、利用BRUP抓包,将报文发送至intruder模块,设置好变量,如下:
2、设置Payloads
1)在Payload Sets 的Payload type 设置为Custom iterator
Payload OPtions 的Position 先择 1(Clear all清除设置) ,这是第一段(固定不变):{"username":",如下:
2) 再把Position设置为2,这部分设置为字典,如下:
3) 最后将Position设置为3,值为:第三段(固定不变):","password":"admin","securityToken":"other meta"}。
3、Payload Processing设置
这里点击“Add",选择Encode,方式为Base64,如下:
4、取消Payload Encoding选择
5、点击 Attack 开始猜解
如下,可以看到第5个报文猜解成功。
四、总结
1、这是针对登录界面进行猜解的一种方式,主要利用了BURP的技巧;
2、开始采用此方式测试一直不成功,后来经过大师指导是因为勾选了Payload Encoding选项,Payload被进行了URL编码;
3、系统这里实际上还有验证码的,不过是在前端进行验证,通过测试发现先容易绕过;
4、系统这里是有锁定设置的,当失败登录次数达到一次数量时才会被锁定,测试猜解的时候不要将正确的密码放在前面,这样容易达不到触发锁定的量,部署在互联网上的系统建议3-5次以上进行锁定,对于内网的系统,安全风险较低,可以设置10次以上都是可以接受的。
标签:编码,admin,BASE64,BRUP,猜解,设置,如下,Payload From: https://blog.51cto.com/u_9652359/6176580