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

Xss复现

目录

前提:

1.什么是XSS

2.XSS 的三种主要类型

复现

第1关

第2关

前提:

1.什么是XSS

XSS(跨站脚本攻击,Cross-Site Scripting) 是一种常见的 Web 安全漏洞,攻击者通过向网页注入恶意脚本(如 JavaScript),当用户访问该网页时,脚本会在用户浏览器中执行,从而窃取用户数据、会话信息或控制用户设备。

2.XSS 的三种主要类型

反射型 XSS
●攻击者将恶意脚本嵌入到 URL 中,当用户点击链接时,脚本会被服务器反射到页面并执行。
示例:通过邮件发送包含恶意脚本的链接,用户点击后触发攻击。
存储型 XSS
●恶意脚本被存储在服务器端(如数据库),当其他用户访问页面时,脚本会被自动加载执行。
示例:在论坛发布包含恶意代码的评论,其他用户查看时触发攻击。
DOM 型 XSS
●攻击者通过修改页面的 DOM 结构(如通过 JavaScript 动态生成内容)触发脚本执行,无需与服务器交互。
示例:利用页面的 URL 参数直接修改 DOM 元素,导致脚本执行。

XSS 是 Web 应用中常见的安全风险,开发者需通过严格的输入输出处理和安全策略来防范。普通用户则需警惕不明链接和异常页面行为,避免成为攻击目标。

复现

靶场地址:XSS Game - Ma Spaghet! | PwnFunction

第1关

(1)无需用户交互,弹出一个内容为 “1337” 的警告框。
(2)get请求传入‘somebody’参数,与‘Toucha Ma Spaghet!’拼接输出到h2中。
(3)用innerHTML进行过滤,对script进行限制。
(4)这样我们可以使用img标签进行绕过

核心在于 spaghet.innerHTML 会将 URL 参数 somebody 的值插入到页面中,由于使用 innerHTML,插入内容会被解析执行,存在跨站脚本攻击(XSS)漏洞。

攻击:
构造恶意参数:构造 somebody 参数为 <script>alert(1337)</script>。
完整代码:

https://sandbox.pwnfunction.com/warmups/ma-spaghet.html?somebody=<img src=1 onerror=alert(1337)>

img属性onerror:当src属性地址不存在时执行onerror属性里的代码。(img 的 onerror属性-CSDN博客)

效果如图:

通过利用 innerHTML 解析执行特性,构造恶意脚本参数,成功触发 XSS 漏洞。此案例提醒开发者,使用 innerHTML 时需严格过滤输入内容,避免 XSS 风险。同时,也展示了 XSS 攻击的基本思路:寻找可注入且会被解析执行的位置,构造恶意代码实现攻击目标。

第2关

(1)跟第一关一样,弹出“1337”
(2)分析代码:get请求传入jeff参数,用eval函数接收,我们知道,JS里的eval函数与PHP里的效果一致,都会把eval里的代码执行,即将‘Ma name $jeff’ 赋值给ma
(3)setTimeout定时将ma里的代码进行innerText文本输出,我们可以在ma里进行闭合,逃出innerText范围,在setTimeout执行逃出的代码。

攻击:

输入链接:

https://sandbox.pwnfunction.com/warmups/jefff.html?jeff="alert(1337)"

发现alert(1337)被当做字符串进行输入了
查官方文档所知setTimeout定时将ma里的代码进行innerText文本输出,我们可以在ma里进行闭合,逃出innerText范围,在setTimeout执行逃出的代码。
所以在alert(1337)这段语句中用 “-”来连接语句
所以更改链接为:

https://sandbox.pwnfunction.com/warmups/jefff.html?jeff="-alert(1337)-"

效果如图:

相关文章:

  • Elasticsearch 之 ElasticsearchRestTemplate 聚合查询
  • 2025年CNG 汽车加气站操作工题目分享
  • 用否定干掉无效流量:DeepBI如何精准提升亚马逊广告效果
  • JDK版本与Class版本的对应关系对照表
  • 121买卖股票的最佳时机解题记录
  • 数据不互通、审批慢?如何实现多系统智能协同
  • Java实现 自主学习一套身份证识别(识别营业执照信息和语音识别接口)
  • DeepSeek集成:如何将DeepSeek修炼成‘国殇剑舞‘
  • 数据库后续
  • python实现登录页面图形验证码
  • Pydantic字段元数据指南:从基础到企业级文档增强
  • 【软考备考】系统架构设计论文完整范文示例
  • iOS自定义collection view的page size(width/height)分页效果
  • 横扫SQL面试——事件流处理(峰值统计)问题
  • 8.3MW屋顶光伏+光储协同:上海汽车变速器低碳工厂的能源革命-安科瑞黄安南
  • 飞桨PP系列新成员PP-DocLayout开源,版面检测加速大模型数据构建,超百页文档图像一秒搞定
  • 解决 “Cannot read SQL script from class path resource [sql/XX.sql]“ 错误
  • 每日总结3.28
  • 卷积神经网络 - 转置卷积
  • Neo4j GDS-05-neo4j GDS 库中对应的中心性分析算法介绍
  • 安徽凤阳通报鼓楼瓦片脱落:去年3月维修竣工,已成立调查组
  • 荷兰外交大臣费尔德坎普将访华
  • 国家统计局:消费对我国经济增长的拉动有望持续增长
  • 以色列在加沙发起新一轮强攻,同步与哈马斯展开无条件谈判
  • 一女游客在稻城亚丁景区因高反去世,急救两个多小时未能恢复生命体征
  • 私家车跑“顺风”出事故,意外险赔不赔?