DVWA 之 XSS(Reflected) - 反射型XSS
九、XSS(Reflected) - 反射型XSS#
原理#
XSS,全称 Cross Site Scripting,即跨站脚本攻击,某种意义上也是一种注入攻击,指攻击者在页面中注入恶意的脚本代码,当受害者访问该页面时,恶意代码会在其浏览器上执行。根据恶意代码是否存储在服务器中,XSS 可以分为反射型 XSS 和存储型 XSS
反射型 XSS 是非持久性、参数型的跨站脚本,
1. Low#
查看源码
<?php
header ("X-XSS-Protection: 0");
// Is there any input?
if( array_key_exists( "name", $_GET ) && $_GET[ 'name' ] != NULL ) {
// Feedback for end user
echo '<pre>Hello ' . $_GET[ 'name' ] . '</pre>';
}
?>
array_key_exists() 函数检查某个数组中是否存在指定的键名,如果键名存在则返回 true,否则返回 false,这里键名为 name
low 级别的代码只是判断了 name 参数是否为空,如果不为空的话就直接打印出来,并没有对 name 参数做任何的过滤和检查,存在非常明显的 XSS 漏洞。
漏洞利用
输入<script>alert('xss')</script>
,结果如下所示
2. Medium#
Medium 级代码中,服务器端使用了 str_replace() 函数把输入的 <script>
进行删除,但是 str_replace() 函数是区分大小写的,所以可以使用大写绕过,而且只过滤一遍,因此也可以使用双写绕过。
漏洞利用
- 大写绕过:
<SCRIPT>alert('xss')</SCRIPT>
- 双写绕过:
<sc<script>ript>alert('xss')</script>
- 事件绕过:
<a href = 'javascript:alert(666)'>click</a>
3. High#
High 等级用 preg_replace() 函数对 <script>
标签进行正则过滤
漏洞利用
可以通过 img、body 等标签的事件或者 iframe 等标签的 src 注入恶意的 js 代码
输入<img src=1 onerror=alert('xss')>
,代码执行成功
防护方法#
- HttpOnly 属性
- 输入检查,检查特殊字符,XSS 特征等
- 输出检查,对输出进行编码
作者:augustine0654
出处:https://www.cnblogs.com/augustine0654/p/17180834.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
分类:
Web安全
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· 单线程的Redis速度为什么快?
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码