当前位置: 首页> 财经> 创投人物 > DVWA-XSS(Reflected)

DVWA-XSS(Reflected)

时间:2025/8/23 8:07:42来源:https://blog.csdn.net/weixin_45436292/article/details/139450616 浏览次数:0次

反射型XSS可以用来窃取cookie

Low

输入1111进行测试,发现1111被打印
在这里插入图片描述
输入<script>alert(document.cookie)</script>,出现弹窗,获得cookie
在这里插入图片描述

Medium

查看后端代码,发现对<script>进行了转义,但是可以通过双写,大小写等进行绕过

<?phpheader ("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$html .= "<pre>Hello {$name}</pre>";
}?>

High

观察后端代码,“*” 代表一个或多个任意字符,“i” 代表不区分大小写,<script>标签被完全过滤。但是我们可以通过其他的标签例如 img、body 等标签的事件注入。
参考XSS Payload List

<?phpheader ("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$html .= "<pre>Hello {$name}</pre>";
}?>

eg:<img src = 1 onerror = alert(document.cookie)>
在这里插入图片描述

Impossible

观察后端代码使用 htmlspecialchars 函数将参数中的特殊字符(如 <, >, &, " 等)转换为 HTML 实体。

<?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 user$html .= "<pre>Hello {$name}</pre>";
}// Generate Anti-CSRF token
generateSessionToken();?>

我们打印一下输入<script>alert(document.cookie)</script>转义后的字符串
在这里插入图片描述
这样浏览器会将其作为普通文本显示,而不是执行。

防御

1.http-only禁止js语句获取cookie
2.过滤输入的字符,例如 “ ’ ”,“ " ”,“<”,“>” 等非法字符;
3.对输入到页面的数据进行编码

关键字:DVWA-XSS(Reflected)

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: