XSS
跨站脚本攻击(Cross Site Script, XSS),是最常见的Web应用应用程序安全漏洞之一,也是OWASP 2013 Top 10之一。 XSS通常来说就是在网页中嵌入恶意代码, 通常来说是Javascript,当用户访问网页的时候,恶意脚本在浏览器上执行。
存储型XSS
XSS主要分为三种类型: 反射型XSS,存储型XSS和DOM型XSS。本文主要阐述的是存储型XSS,简单来说明一下存储型XSS的攻击基本流程:
a. 比如在某个论坛提供留言板功能,黑客在留言板内插入恶意的html或者Javascript代码,并且提交。
b. 网站后台程序将留言内容存储在数据中
c. 然后一个用户也访问这个论坛,并刷新了留言板,这时网站后台从数据库中读取了之前黑客的留言内容,并且直接插入在html页面中,这就可能导致了:黑客留言的脚本本身应该作为内容显示在留言板的,然后此时可能黑客的留言脚本被浏览器解释执行了。。。。
那么黑客的脚本可以用来做哪些坏事儿呢?比如:
通过javascript获取用户的cookie,根据这个cookie窃取用户信息
重定向网站到一个钓鱼网站
重新更改页面内容,假装让客户输入用户名,密码,然后提交到黑客的服务器
……
如果用过早期校内网的应该知道,校内网原先的主页可以通过自定义脚本来定制主页面,后来这个功能取消了,因为这种方式很容易产生XSS漏洞。
Mutillidae中实践存储型XSS
在之前的博客<< OWASP Mutillidae的安装>>中已经介绍过如何搭建Web漏洞实战系统Mutillidae, 本篇就开始用Mutillidae进行存储型XSS的攻击实践。
首先在Mullidae中选择XSS持久型的攻击页面Add to your blog。
然后用账户iceking登录,假设iceking现在就是博主,可以在这个页面添加blog了,添加一个内容为Hello Iceking的博客, 并且点击Save Blog Entry进行保存,此时这篇博客Hello Iceking会保存到后台数据库中。
然后某个一个网友,去查看了你的博客: 打开查看博客页面,并且选择iceking的Blog。
现在Bird用户可以看到Iceking发表的博客内容Hello World:
到这里了怎么还没说到XSS啊?不要着急,现在就开始角色扮演,如果作为一名刚刚上手的黑客,首先要把思路理清楚,这个博客的发表和查看的过程如下:
(1) Iceking写了内容为Hello Iceking的博客,并且提交了博客到服务器
(2) Bird用户访问了Iceking的博客,服务器将博客的内容以表格的形式展现给了Bird。
思考时间到了,假设Iceking编写了一段Javascript脚本的内容,这个Javascript脚本内容,也能够展现给访问博客的用户吗?还是编写的Javascript脚本会被浏览器解释执行呢?如果是后者,那么这个博客系统则存在一个XSS漏洞。
那就动手试一试吧,用Iceking编写博客内容为,保存后,然后用Bird账号对这个博客进行访问,发现Bird访问网站的cookie被打印了出来!!!
这也就表明了,博客的内容为脚本时,被浏览器给解释执行了,说明这个博客系统存在XSS漏洞。上述只是打印出了cookie,如果黑客iceking在博客中嵌入的代码是: 将Cookie发送给自己部属好的服务器,则窃取了用户的cookie信息,并且可以用cookie进一步获取用户的隐私信息。
如果这个黑客利用博客的漏洞直接在里面篡改网页内容,或者插入假冒的用户账户密码输入框,被上当后后果不堪设想。 那么博主就简单演示下,如何在博客中插入百度的主页(当然上述原理明白后,可以分分钟搞定了)。
首先黑客iceking登录博客,并且编写博客内容如下, 然后保存博客:
这时候Bird网友查看了Iceking的博客内容,我汗,怎么里面是百度的主页了!!!
以上就是一个简单的存储型XSS漏洞,其实很多的XSS的漏洞相比较而言也不会这么暴露。在XSS漏洞侦测方面,可以通过扫描工具APPScan,Burp Suite等工具进行检测,当然也可以人工的去检查,比如输入<>标签嵌入脚本或者HTML,查看是否被转意。
后续博主也会继续学习反射型XSS,和DOM型XSS, 并且继续深入学习Javascript和XSS的漏洞。接着作为一名程序员,最最重要的是也要继续深入的学习如何防范XSS漏洞。
————————————————
版权声明:本文为CSDN博主「河边一支柳」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/cjf_iceking/java/article/details/52176029
阅读(1491) | 评论(0) | 转发(0) |