热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

DVWA系列之21

存储型跨站可以将XSS语句直接写入到数据库中,因而相比反射型跨站的利用价值要更大。在DVWA中选择XSSstored,这里提供了一个类型留言本的页面。我们首先查看low级别的代码,

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


推荐阅读
  • 拖拉切割直线 ... [详细]
  • 本文详细介绍如何在Spring Boot项目中集成和使用JPA,涵盖JPA的基本概念、Spring Data JPA的功能以及具体的操作步骤,帮助开发者快速掌握这一强大的持久化技术。 ... [详细]
  • 微信小程序支付官方参数小程序中代码后端发起支付代码支付回调官方参数文档地址:https:developers.weixin.qq.comminiprogramdeva ... [详细]
  • 本文探讨了在使用Apache Flink向Kafka发送数据过程中遇到的事务频繁失败问题,并提供了详细的解决方案,包括必要的配置调整和最佳实践。 ... [详细]
  • 解析 HTTP 头 'Vary: Accept-Encoding' 的作用与重要性
    本文详细探讨了 'Vary: Accept-Encoding' HTTP 头的作用,即指导缓存系统(如代理服务器和 CDN)根据不同的编码需求存储和提供适当的资源版本,确保不同类型的客户端能够接收到适合自己的内容。 ... [详细]
  • 本文探讨了Lua中元表和元方法的使用,通过具体的代码示例展示了如何利用这些特性来实现类似C语言中的运算符重载功能。 ... [详细]
  • Python中调用Java代码的方法与实践
    本文探讨了如何在Python环境中集成并调用Java代码,通过具体的步骤和示例展示了这一过程的技术细节。适合对跨语言编程感兴趣的开发者阅读。 ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置单节点的Redis服务,包括下载、解压、编译安装以及启动服务的具体步骤。 ... [详细]
  • 文章参考:http:bbs.elecfans.comjishu_1096643_1_1.html在AD采集中经常要用到数字滤波,而不同情况下又有不同的 ... [详细]
  • UVA 401 - 镜像回文字符串
    本题探讨了如何判断一个字符串是否为普通回文、镜像回文或两者都不是。通过特定的字符映射表来实现字符串的镜像转换,并根据转换后的结果进行分类。 ... [详细]
  • 抽象工厂模式 c++
    抽象工厂模式包含如下角色:AbstractFactory:抽象工厂ConcreteFactory:具体工厂AbstractProduct:抽象产品Product:具体产品https ... [详细]
  • 本文探讨了在Node.js环境中如何有效地捕获标准输出(stdout)的内容,并将其存储到变量中。通过具体的示例和解决方案,帮助开发者解决常见的输出捕获问题。 ... [详细]
  • 本文深入探讨了JLine库中的ConsoleReader.drawBuffer()方法的使用场景和具体实现,通过多个实际代码示例,帮助开发者更好地理解和应用此方法。 ... [详细]
  • Activity跳转动画 无缝衔接
    Activity跳转动画 无缝衔接 ... [详细]
  • Cadence SPB 16.5 安装指南与注意事项
    本文提供了详细的 Cadence SPB 16.5 安装步骤,包括环境配置、安装过程中的关键步骤以及常见问题的解决方案。适合初次安装或遇到问题的技术人员参考。 ... [详细]
author-avatar
福田商务汽车--南宁鑫来
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有