这是继上节课[基于DVWA的Xss测试平台Medium等级讲解]的high
等级
废话不多说,直接开始了~
设置等级、查看源代码等操作不再重复了,直接把high
等级的代码复制到这里:1
2
3
4
5
6
7
8
9
10
11
12
13
14
header ("X-XSS-Protection: 0");
// Is there any input?
if( array_key_exists( "name", $_GET ) && $_GET[ 'name' ] != NULL ) {
// Get input
$name = preg_replace( '/<(.*)s(.*)c(.*)r(.*)i(.*)p(.*)t/i', '', $_GET[ 'name' ] );
// Feedback for end user
echo "<pre>Hello ${name}</pre>";
}
最主要的看这行代码$name = preg_replace( '/<(.*)s(.*)c(.*)r(.*)i(.*)p(.*)t/i', '', $_GET[ 'name' ] );
,这个是正则匹配,把(.*)
里的字符统统变成''
;这里的i
就表示这个匹配是不区分大小写的,所以上一个等级的大写绕过大法是没用了,可以说在这里基本上是在script
标签里的代码都不能实现了,那么我们可以用另一种办法实现
利用其它标签执行js代码:
如何防御?
这里我就不再重复了,前面两章说的十分清楚了~
十年寒窗无人问,一举成名天下知
– Cai_Team