知道这里的大佬很多,我这种小儿科难入法眼,我只是记录下自己的学习过程,编写自己的DVWA通关手册,最近很忙,但不能放弃我的目标,加油!
xss的介绍
XSS,全称Cross Site Scripting,即跨站脚本攻击,某种意义上也是一种注入攻击,是指攻击者在页面中注入恶意的脚本代码,当受害者访问该页面时,恶意代码会在其浏览器上执行,需要强调的是,XSS不仅仅限于JavaScript,还包括flash等其它脚本语言。根据恶意代码是否存储在服务器中,XSS可以分为存储型的XSS与反射型的XSS。DOM型的XSS由于其特殊性,常常被分为第三种,这是一种基于DOM树的XSS。例如服务器端经常使用document.boby.innerHtml等函数动态生成html页面,如果这些函数在引用某些变量时没有进行过滤或检查,就会产生DOM型的XSS。DOM型XSS可能是存储型,也有可能是反射型。
XSS利用的常见用途:
盗取用户cookies、劫持会话、流量劫持、网页挂马、DDOS、提升权限…
DOM型XSS:Stored Cross Site Scripting
全称Document Object Model,是一个平台和语言都中立的接口,可以使程序和脚本能够动态访问和更新文档的内容、结构以及样式。
DOM型XSS其实是一种特殊类型的反射型XSS,它是基于DOM文档对象模型的一种漏洞。
在网站页面中有许多页面的元素,当页面到达浏览器时浏览器会为页面创建一个顶级的Document object文档对象,接着生成各个子文档对象,每个页面元素对应一个文档对象,每个文档对象包含属性、方法和事件。可以通过JS脚本对文档对象进行编辑从而修改页面的元素。也就是说,客户端的脚本程序可以通过DOM来动态修改页面内容,从客户端获取DOM中的数据并在本地执行。基于这个特性,就可以利用JS脚本来实现XSS漏洞的利用。
1、Low (低难度的)
<?php
# No protections, anything goes
?>
可以发现并无任何保护措施,直接尝试注入
直接在URL处输入,default=<script>alert(/xss/)</script>
就是这么简单!
2、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;
}
}?>
可以看到源码里面,针对<script>字段进行了过滤,略微加强了防护,但依旧可以攻破。
失败了,说明<script>字段真的被过滤了,那么直接使用非<script>的
例如:闭合</option></select>标签构造xss事件
></option></select><iframe onload=alert(/xss/)>
3、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=只允许是French、English、German、Spanish、这几个通过。(采用了白名单过滤)
失败,说明白名单确实起效了。此时,就需要有一个绕过报名单的攻击思路了。
default=English#</option></select><iframe onload=alert(/xss/)></option>
总结一下,就算白名单限制,但是依旧有办法绕过。
4、Impossible(不可能的)
<?php
# Don’t need to do anything, protction handled on the client side
?>
impossible级别的代码没有任何东西,注释写的是保护的代码在客户端的里面。
来源:freebuf.com 2020-10-28 21:11:02 by: fu福lin林
请登录后发表评论
注册