基于DVWA的反射型Xss测试平台Medium等级讲解

这是继上节课[基于DVWA的Xss测试平台Low等级讲解]的中等级

首先,我们把等级设置为Medium 上节课讲了如何设置这里就不再讲了

查看Medium源代码:

image_1ceaj53i93ri2t12be93ndtqp.png-140.1kB

点开后是这样的:
image_1ceaj6a2b9ti1o1ee8s1dh31p5v16.png-148.6kB

代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php

header ("X-XSS-Protection: 0");

// Is there any input?
if( array_key_exists( "name", $_GET ) && $_GET[ 'name' ] != NULL ) {
// Get input
$name = str_replace( '<script>', '', $_GET[ 'name' ] );

// Feedback for end user
echo "<pre>Hello ${name}</pre>";
}

?>

这里的代码部分也很好理解,比上一章仅仅多了一个过滤,下面来详细讲解一下。

if( array_key_exists( "name", $_GET ) && $_GET[ 'name' ] != NULL )这段代码的意思是,如果$_GET中有name这个key并且$_GET[ 'name' ]的值不为空的话就执行{}里面的代码。
$name = str_replace( '<script>', '', $_GET[ 'name' ] );这句话的意思是把$_GET[' name ']中的<script>过滤为空( 并不安全 ),最后一段代码就是输出Hello+name的值在页面上

看懂代码后,如何利用呢?

我们在上面看代码的时候明白了,在这个Medium等级中,只做了把<script>字符给过滤了,那么我下面就来演示一下如何绕过

先来输入<script>后看看是否为空:

image_1ceajjf5k1tj96go2gr1g67125m1j.png-86.9kB
可以看到这里的输出是为空的,下面来讲绕过

绕过方法1:

在输入框中输入<scr<script>ipt>alert('iamfree')</script>,来看看结果先:
image_1ceajnhjabo21p1gvvr98fad820.png-187.2kB

解释:
image_1ceajudl1146t1oc7g2a6eof402d.png-226.2kB

绕过方法2:

用大写的绕过,输入<SCRIPT>alert('iamfree')</SCRIPT>
image_1ceb2ofbv8vt1onl1ksphkse9v9.png-99.1kB

如何防御

防御方法1:

其实防御的方法也和上篇一样,但还有一个也很棒的方法哟。
image_1cealoccsqkbaqe36k11o114j23n.png-92.4kB

代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php

header ("X-XSS-Protection: 0");

// Is there any input?
if( array_key_exists( "name", $_GET ) && $_GET[ 'name' ] != NULL ) {
// Get input
// $name = str_replace( '<script>', 'xss', $_GET[ 'name' ] );
foreach ( $_GET as $key => $value ) { //把$_GET数组里的值分成$key和$value
$name = $_GET[ $key ] = htmlspecialchars( $value ); //把$_GET数组中$key对应的$value值html实例化,并且赋值给$name变量
}

// Feedback for end user
$html .= "<pre>Hello ${name}</pre>";
}

?>

image_1ceall6lr1hh9v331eodlhs1a9t2q.png-75.9kB

防御方法2:

image_1ceam2i9s1v1m18m8be116tn1vpn4n.png-93.1kB

只需要加上一条preg_replace( '/<(.*)s(.*)c(.*)r(.*)i(.*)p(.*)t/i', '', $_GET[ 'name' ] ),这也是high等级的防御方法

image_1ceam65gk1rn8140916so14nf1rfd54.png-64.4kB

十年寒窗无人问,一举成名天下知
– Cai_Team

本文标题:基于DVWA的反射型Xss测试平台Medium等级讲解

文章作者:Iamfree

作者QQ:1900065568

发布时间:2018年05月25日 - 10:05

最后更新:2018年07月10日 - 16:07

原始链接:127.0.0.1/2018/05/25/基于DVWA的反射型Xss测试平台Medium等级讲解/

许可协议:暂时请不要转载,感谢!!!

坚持写有质量的原创\转载文章,如果您觉得质量不错的话就点击下面按钮打赏我们把~
---------------本文结束感谢您的阅读,喜欢我们的话就加入我们吧~---------------