1. 用网页登录飞信的网站( 这里显示的是https,但是在传输密码时没有加密 ):
https://webim.feixin.10086.cn/
2. 使用firebug可是看到它使用的是https://webim.feixin.10086.cn/js/login.js?2010121001
来实现登录的。
具体的source不贴出来的,但是关键的部分如下:
function j() { var m = new Object(); m.success = k; m.error = b; if
(calluser) { m.url = loginUrl + “?calluser=” + calluser } else { m.url =
loginUrl } m.type = “POST”; var l = 0; if (!f(“#login_chk_1”).attr(“checked”))
{ l = 400 } m.data = { UserName: f(“#login_username”).val().trim(), Pwd:
f(“#login_pass”).val(), Ccp: f(“#login_code”).val(), OnlineStatus: l };
m.dataType = “json”; loadingPanel.show(); f.ajax(m) }
3. 从source中可以看到它是通过ajax 用post方法将数据传输到server的,但是使用firebug查看的话,
它是将密码明文发送的, 所以会有中间人攻击的可能,尤其是公司是经过代理上网的,管理员在代理服务器上
可以通过http post数据得到用户的密码 。
4. 例子如下:
POST /WebIM/Login.aspx HTTP/1.1
UserName=13468718000 & Pwd=aaaaaaaaaa &Ccp=8kvs&OnlineStatus=400
^用户的手机号码(这里是随便输入的) ^密码
看来网上安全需要注意,我还尝试了renren和web.qq.com。
renren也是通过明文来传输密码的,但是web.qq.com不是,它是通过md5算法散列的, 关键的一行是
“H += md5(md5_3(B.p.value) + G);”
^密码 ^verifycode(可以通过http get 数据获得)
例如,一个web qq登录请求:
GET
/login?u=555555555&p=F018505DE8B66FBCB8CD7F1A04101870&verifycode=!AG0&remember_uin=1&aid=1003903&u1=http%3A%2F%2Fweb.qq.com%2Floginproxy.html%3Flogin_level%3D3&h=1&ptredirect=0&ptlang=2052&from_ui=1&pttype=1&dumy=&fp=loginerroralert&mibao_css=
HTTP/1.1
密码”111111111”经过4次md5散列后的变成了”F018505DE8B66FBCB8CD7F1A04101870”,
verifycode是:!AG0
refs: js beauty online 很好用 http://jsbeautifier.org/?
-—
https://mail.qq.com 也是通过明文来传输密码的,例如,一个登录请求:
POST /cgi-bin/login?sid=,2,zh_CN HTTP/1.1
sid=%2C2%2Czh_CN&firstlogin=false&starttime=1303269953187&redirecturl=&f=html&p=111111&ept=0&delegate_url=&s=&ts=1303269964&from=&ppp=&chg=0&target=&checkisWebLogin=9&uin=dddd&aliastype=@qq.com&pp=000000&verifycode=
uin=dddd 是用户名, p=111111是密码