吴旭华 发表于 2024-6-11 11:43:32

DVWA-XSS(Reflected)

反射型XSS可以用来窃取cookie
Low

输入1111进行测试,发现1111被打印
https://img-blog.csdnimg.cn/direct/da6babfcadd1410c9a62e8389f92d1df.png
输入<script>alert(document.cookie)</script>,出现弹窗,得到cookie
https://img-blog.csdnimg.cn/direct/8b30a546a1434b37812b1e312bcd75c5.png
Medium

查看后端代码,发现对<script>进行了转义,但是可以通过双写,大小写等进行绕过
<?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
        $html .= "<pre>Hello {$name}</pre>";
}

?>
High

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

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

?>
eg:<img src = 1 onerror = alert(document.cookie)>
https://img-blog.csdnimg.cn/direct/c546d50726a54191ae7abc1c6654b7c6.png
Impossible

观察后端代码利用 htmlspecialchars 函数将参数中的特别字符(如 <, >, &, " 等)转换为 HTML 实体。
<?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
        $html .= "<pre>Hello {$name}</pre>";
}

// Generate Anti-CSRF token
generateSessionToken();

?>
我们打印一下输入<script>alert(document.cookie)</script>转义后的字符串
https://img-blog.csdnimg.cn/direct/a1b2d9a0a9744021b38ff2b1b5566e7c.png
这样欣赏器会将其作为普通文本表现,而不是执行。
防御

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

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: DVWA-XSS(Reflected)