Burp抓不到登陆数据包?

问题:
今天在做测试的时候,发现使用burp suite无法抓取登录的数据包,而有的时候又能抓到。

解决办法:
原因是程序前端通过js限制了用户名和密码的长度,若用户输入的不符合规则,浏览器不会发送数据包,提示的错误信息和用户输入的账号密码符合规则,但是输入有误的错误信息相同,所以比较难分辨这种情况。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
function login(obj)
{
var userName = $("#userName");
var userPwd = $("#userPwd");
var bindType = $("#bindType");
if(bindType.length==0)
{
bindType = '';
}else
{
bindType = bindType.val();
}
if(userName.val()=="" || userName.val().length<9)
{
showMsg("用户名错误!");
userName.focus();
return;
}
if(userPwd.val()=="" || userPwd.val().length<5)
{
showMsg("密码错误!");
userPwd.focus();
return;
}
$(obj).val('登录中..')
$(obj).attr('disabled','disabled');
$.ajax({
url:$(obj).attr('data-url'),
type:'post',
dataType:"json",
data:{"username":userName.val(),"password":hbmd5(userPwd.val()),"bindType":bindType},
error: function(res)
{
$(obj).removeAttr('disabled');
$(obj).val('登录');
},
success: function(res){
if(res.status == 'y')
{
$(obj).removeAttr('disabled');
$(obj).val('跳转中..');
window.location = $(obj).attr('data-back-url');
}else
{
showMsg(res.error);
$(obj).removeAttr('disabled');
$(obj).val('登录');
}
}
});
}