跨站脚本攻击深入解析(上)
2009-02-25 13:54:15 来源:WEB开发网我们知道,像来自服务器端的JavaScript和VBScript代码可以通过访问变量document.cookie来对cookies进行读写操作,除非该cookie设置了HttpOnly属性并且用户正在使用IE。这是一个很大的安全隐患,黑客对此极为感兴趣,因为cookies通常含有认证证书,CSRF保护措施的信息和其他机密信息;此外,中间人攻击可以编辑HTTP通信中的JavaScript代码,呵呵,这简直就是一场恶梦。
如果一位攻击者可以突破或绕过同源策略的话,就可以通过DOM的变量document.cookie轻松读取cookies。另外,写入新的cookies也是非常容易的,攻击者只要使用类似下列字符串格式来连接document.cookie变量即可:
var cookieDate = new Date ( 2030, 12, 31 );
document.cookie += "CookieName=CookieValue;" +
/* 以下各行均为可选内容 */
"domain=.y.z.com;" +
"path=/a;" +
"expires=" + cookieDate.toGMTString() + ";" +
"secure;" +
"HttpOnly;"
读者可以对照全面讲述的内容自己理解上述代码,我想这并非难事。
四、Cookies在创建和语法分析方面的安全隐患
Cookies可以用于JavaScript、浏览器、Web服务器、负载均衡系统及其他独立系统,每个系统都使用不同的代码来解析Cookies。毫无疑问,这些系统将以不同的方式来解析和阅读cookies。攻击者也许能够将受害者已有的cookie中的一个替换掉,换上的cookie在系统看来表面上跟想要的那个没什么两样,但是实际上内容却大相径庭了。
举例来说,攻击者也许能够添加一个cookie,而这个cookie恰好与受害者已有的cookies中的一个重名,这样攻击者就覆盖了原先的cookie。可以考虑一下大学的设置,其中一位攻击者具有一个公开的web页面,位于http://public-pages.daxue.edu/~attacker,同时该大学在https://webmail.daxue.edu/提供了一个webmail服务。攻击者可以自己制作一个cookie并且将域设为.daxue.edu,然后把它发送到https://webmail.daxue.edu/。假如这个cookie跟webmail用于认证的cookie同名的话,现在webmail系统读取的将是攻击者伪造的cookie,而不是webmail为用户所建立的cookie。
- ››深入理解JAR包
- ››深入分析Volatile的实现原理
- ››深入理解Flash Player的应用程序域(Application ...
- ››深入理解flash函数(AS2)
- ››深入理解Android消息处理系统——Looper、Handler...
- ››深入理解SET NAMES和mysql(i)_set_charset的区别
- ››深入理解Mysql字符集设置
- ››深入浅出实战攻防恶意PDF文档
- ››深入剖析防火墙策略的执行过程:ISA2006系列之六
- ››深入JavaScript与.NET Framework中的日期时间(3)...
- ››深入JavaScript与.NET Framework中的日期时间(2)...
- ››深入JavaScript与.NET Framework中的日期时间(1)...
更多精彩
赞助商链接