当前位置: 首页 > news >正文

XSS漏洞靶场

http://127.0.0.1/xss-labs-master/level1.php?name=<script> alert("攻击成功")</script>
 

此漏洞主要源于代码对用户输入未进行充分的过滤和转义处理。在 PHP 代码里,通过 $_GET["name"] 接收用户从 URL 传递过来的 name 参数,接着直接将该参数输出到 HTML 页面中。若攻击者在 name 参数里注入恶意的 JavaScript 代码,当页面加载时,这些恶意代码就会被浏览器执行,进而达成 XSS 攻击。

通过分析源码,可在name参数上尝试用简单的JS代码进行XSS攻击

http://127.0.0.1/xss-labs-master/level2.php?keyword="><script>alert('XSS 攻击成功!')</script><"
 

虽然代码在部分输出时使用了 htmlspecialchars 函数对用户输入进行了处理,但在表单输入框的 value 属性赋值时,没有对用户输入进行足够的转义处理。攻击者可以通过构造特殊的输入,绕过这种部分防护,使得恶意的 JavaScript 代码在页面中被执行,从而实现 XSS 攻击。

在上述代码里,$str 是从 $_GET["keyword"] 获取的用户输入,在 <input> 标签的 value 属性中直接使用了 $str,而没有进行合适的转义。

在h2标签之中的恶意代码被htmlspecialchars编码了。其中<、>都被编码成了html字符实体,恶意代码被编码了,只能从属性值中的恶意代码处进行突破了,,只需要将属性的引号和标签先闭合就可以了。

http://127.0.0.1/xss-labs-master/level3.php?writing='οnmοuseοver='alert("XSS")
 

 

代码中对 $str 进行了 htmlspecialchars 处理,在大部分情况下能防止常见的 XSS 攻击。不过,当攻击者利用 HTML 事件属性时,仍可能构造出能执行恶意脚本的情况。在 HTML 标签的属性中,如果输入包含事件处理函数(如 onclick、onload 等),即使使用了 htmlspecialchars 转义了引号,攻击者依然可以通过构造合适的输入绕过部分防护。

点击边框过关

漏洞分析

过滤不彻底
代码尝试通过 str_replace 函数去除输入中的 < 和 > 字符,以防止用户注入 HTML 标签。然而,攻击者可以利用 HTML 实体编码绕过这种过滤。HTML 实体编码允许将特殊字符用特定的编码表示,例如 < 可以用 < 表示,> 可以用 > 表示。当页面输出时,浏览器会将这些实体编码解析为对应的字符。

部分输出转义问题
虽然在 <h2> 标签中使用了 htmlspecialchars 对输出进行转义,但在 <input> 标签的 value 属性中,使用的是经过 str_replace 处理后的 $str3,没有再次进行全面的转义,这就给攻击者留下了可乘之机。

http://127.0.0.1/xss - labs - master/level4.php?keyword="οnfοcus=javascript:alert('xss') "

攻击原理:

攻击者通过构造恶意的 keyword 参数,将包含 JavaScript 代码的字符串注入到页面中。当页面加载时,浏览器会执行注入的 JavaScript 代码,从而实现攻击目的。例如,使用如下 URL:

http://127.0.0.1/xss-labs-master/level5.php?keyword="><a href=javascript:alert("攻击成功")>"点这"</a>

在这个 URL 中,keyword 参数的值为 "><a href=javascript:alert("攻击成功")>"点这"</a>。当页面加载时,这个恶意代码会被嵌入到 input 标签的 value 属性中,导致浏览器执行 alert("攻击成功") 代码,显示一个提示框,表明攻击成功

相关文章:

  • C++对象数组的使用
  • Web前端之UniApp、Taro、ReactNative和Flutter的区别
  • Python Django系列—多数据库
  • 信息集译码算法(ISD)
  • C++11QT复习 (五)
  • Lambda 和 Stream 从 0 到 1,从基础到实战
  • Go 语言当中的反射机制
  • 数据结构--二叉树--其一
  • 搭建k8s集群的可观测体系(log和metric)(已踩完坑)
  • 常用的几种思维方式
  • MySQL:DML
  • Node.js的安装和环境配置
  • ECharts实现数据可视化
  • QTcpSocket多线程连接慢问题
  • Axure RP 9.0教程: 基于动态面板的元件跟随来实现【音量滑块】
  • 面试总结2025
  • Transformers快速入门-学习笔记(二)
  • AQS的重入机制和锁释放逻辑
  • 知网打不开
  • 思考我的未来职业
  • 高端网站建设服务/百度前三推广
  • 赤风设计/seo外链在线工具
  • 学网站开发好找工作吗/武汉seo搜索优化
  • 珠海网站建设找哪家/游戏推广代理平台
  • 做网站要用什么计算机语言/关键词排名点击软件怎样
  • 深圳龙华建设工程交易中心网站/信息流推广的竞价机制是