XSS DOM 测试
dvwa DOM XSS
DOM Based XSS:是基于DOM文档对象模型的操作,通过前端脚本修改页面的DOM节点形成的XSS,该操作不与服务器端进行交互,而且代码是可见的,从前端获取到DOM中的数据在本地执行,从效果上来说也是反射型XSS。
漏洞测试
low 级别
可知Select按钮选择参数,数据提交是以GET请求的方式
<?php # No protections, anything goes ?>
low 级别不存在Protect,可以非常简单的造成XSS攻击
构造payload
http://192.168.43.146/dvwa/vulnerabilities/xss_d/?default=%3Cscript%3Ealert%28%22XSS%22%29%3C/script%3E
当用户触发该URL时就会受到XSS攻击,有弹框出现
medium 级别
<?php // Is there any input?
if ( array_key_exists( "default", $_GET ) && !is_null ($_GET[ 'default' ]) ) {
$default = $_GET['default']; # Do not allow script tags
if (stripos ($default, "<script") !== false) {
header ("location: ?default=English");
exit;
}
} ?>
经过代码审计之后可知:array_key_exists检查数组里是否有指定的键名或索引,并且default值不为null,传递的数据中如果存在<script>标签,则会进入if条件,default默认赋值为“English”
stripos(string,find,start) 函数查找字符串在另一字符串中第一次出现的位置(不区分大小写)。 参数 描述
string 必需。规定要搜索的字符串。
find 必需。规定要查找的字符。
start 可选。规定开始搜索的位置。 相关函数:
strpos() - 查找字符串在另一字符串中第一次出现的位置(区分大小写)
strripos() - 查找字符串在另一字符串中最后一次出现的位置(不区分大小写)
strrpos() - 查找字符串在另一字符串中最后一次出现的位置(区分大小写)
由于stripos函数的作用所以不能使用<script>标签,但是真的就不能使用该标签吗,答案是可以的,此处要利用到URL中的一个特殊字符‘#’,该字符后的数据不会发送到服务器端,从而绕过服务端过滤
构造payload
http://192.168.43.146/dvwa/vulnerabilities/xss_d/?#default=%3Cscript%3Ealert%28%22XSS%22%29%3C/script%3E
触发该URL,成功绕过服务端的过滤
假如真的不能使用<script>标签,也有另一种方法进行绕过服务端的检测
用img标签或其他标签的特性去执行js代码,比如img标签的onerror事件
构造payload
http://192.168.43.146/dvwa/vulnerabilities/xss_d/?default=</option></select><img src=# onerror=alert("xss")>
触发该URL,成功绕过服务端的过滤
high 级别
<?php // Is there any input?
if ( array_key_exists( "default", $_GET ) && !is_null ($_GET[ 'default' ]) ) { # White list the allowable languages
switch ($_GET['default']) {
case "French":
case "English":
case "German":
case "Spanish":
# ok
break;
default:
header ("location: ?default=English");
exit;
}
} ?>
代码审计之后可知:在服务器后端判断,要求default的值必须为select选择菜单中的值,这里继续用上面的#符号绕过即可,构造payload
http://192.168.43.146/dvwa/vulnerabilities/xss_d/?#default=%3Cscript%3Ealert%28%22XSS%22%29%3C/script%3E
成功绕过后端switch的限制
impossible 级别
Security level set to impossible
<?php # Don't need to do anything, protction handled on the client side ?>
XSS DOM 测试的更多相关文章
- XSS Reflected 测试
由于最近在做XSS方面的测试,于是找到了DVWA平台进行实验测试,通过这三篇文章让大家了解XSS方面的大概内容,这三篇文章只是把你领进XSS的大门,要想真正深入的学习XSS,你还需要去学习很多东西来提 ...
- 如何在SAE搭建属于自己的黑盒xss安全测试平台
Author:雪碧 http://weibo.com/520613815 此篇文章技术含量不高,大牛不喜勿喷,Thx!写这篇文章主要是为了各位小伙伴在SAE搭建XSSING平台的时候少走点弯路(同志们 ...
- js的dom测试及实例代码
js的dom测试及实例代码 一.总结 一句话总结: 1.需要记得 创建 标签和创建文本节点都是document的活:document.createTextNode("Rockets的姚明&q ...
- OWASP出品:Xenotix XSS漏洞测试框架及简单使用
OWASP Xenotix XSS Exploit Framework是一个高效的跨站脚本漏洞(XSS)检测和攻击测试框架.它通过特有的三大浏览器引擎(包括Trident, WebKit和Gecko) ...
- xss跨站脚本测试
测试的时候会涉及到xss测试,下面简要整理下xss的知识 xss跨站脚本特点就是能注入恶意的HTML/JS代码到用户浏览器,劫持用户会话 常用alert来验证网站存在漏洞 如果确认存在漏洞,会随着注入 ...
- XSS Stored 测试
dvwa存储型XSS 存储型XSS:会把用户输入的数据“存储”在服务器端,一般出现在需要用户可以输入数据的地方,比如网站的留言板.评论等地方,当网站这些地方过滤不严格的时候,就会被黑客注入恶意攻击代码 ...
- DVWA XSS (DOM) 通关教程
DOM,全称Document Object Model,是一个平台和语言都中立的接口,可以使程序和脚本能够动态访问和更新文档的内容.结构以及样式. DOM型XSS其实是一种特殊类型的反射型XSS,它是 ...
- XSS攻击测试代码
'><script>alert(document.cookie)</script>='><script>alert(document.cookie)&l ...
- DVWA之DOM XSS(DOM型跨站脚本攻击)
目录 Low Medium High Impossible Low 源代码: <?php # No protections, anything goes ?> 从源代码可以看出,这里low ...
随机推荐
- js 模拟form表单post提交
var generateHideElement = function (name, value) { var tempInput = document.createElement("inpu ...
- eclipse自身导致的项目问题:上边提示需要移除无用包,下边类提示需要导入包。
- nodejs编译遇到的问题
src\node_contextify.cc:631: Assertion 'args[1]->IsString()' failed. node 10 版本会出现这个问题, 安装natives后 ...
- mysql import error
mysql导入文件一直出错,显示ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option s ...
- ubuntu下安装pandas出现 compile failed with error code 1 in /tmp/pip_build_hadoop/pandas
都是用pip装的,是不是应该用apt-get 装的呀 ubuntu下安装pandas (出现 compile failed with error code 1 in /tmp/pip_build_ha ...
- (一) sublime安装和使用
1 下载安装sublime 可以破解也可以不破解 2 html基础架子自动生成插件Emmet的安装 3 Emmet 安装失败解决 4 快捷键设置和汇总 4 其他sublime插件汇总
- hadoop伪分布式搭建
安装好jdk 减压hadoop压缩包 cd /home/hadoop/hadoop-2.7.3/etc/hadoop vi hadoop-env.sh 文件末尾处添加 jdk环境变量 export J ...
- ASP.NET 4.0验证请求 System.Web.HttpRequestValidationException: A potentially dangerous Request.F
System.Web.HttpRequestValidationException: A potentially dangerous Request.F 在使用类似eWebedtior 拷贝内容进去的 ...
- Spring Boot 实现 RabbitMQ 延迟消费和延迟重试队列
本文主要摘录自:详细介绍Spring Boot + RabbitMQ实现延迟队列 并增加了自己的一些理解,记录下来,以便日后查阅. 项目源码: spring-boot-rabbitmq-delay-q ...
- 企业IT管理员IE11升级指南【11】—— 通过SCCM 2012和WSUS部署Internet Explorer 11
企业IT管理员IE11升级指南 系列: [1]—— Internet Explorer 11增强保护模式 (EPM) 介绍 [2]—— Internet Explorer 11 对Adobe Flas ...