存储型 XSS 攻击演示(附链接)

本文涉及的产品
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: 存储型 XSS 攻击演示(附链接)

一、介绍:

存储型 XSS(Cross-Site Scripting)攻击是一种 Web 应用程序中常见的安全漏洞,攻击者通过将恶意脚本注入到服务器端,使得这些脚本被存储在数据库中,进而在用户浏览器中执行。下面是对存储型 XSS 攻击的解释和分析:

  1. 攻击过程:
  • 攻击者将恶意脚本注入到 Web 应用程序的输入字段或用户提交的内容中。
  • 这些恶意脚本被存储在服务器端,通常是在数据库中,以便后续用户访问时被提取和执行。
  • 当用户浏览包含恶意脚本的页面时,浏览器执行这些脚本,导致攻击者可以在用户环境中执行恶意操作。
  1. 危害:
  • 存储型 XSS 攻击可能导致用户受到各种危害,包括但不限于:
  • 窃取用户的敏感信息,如登录凭据、会话标识等。
  • 在用户账户下执行未经授权的操作。
  • 劫持用户的会话。
  • 在受害用户的浏览器上执行恶意操作,如下载恶意软件或进行网络攻击。

防御措施:

  • 输入验证:对于用户输入的数据,进行有效的输入验证,确保只接受合法和预期的输入。
  • 输出转义:在将用户输入嵌入到 HTML 页面之前,对其进行适当的输出编码,以防止执行恶意脚本。
  • Content Security Policy(CSP):通过在HTTP响应头中设置 CSP 策略,限制浏览器执行外部脚本的能力,从而减少 XSS 攻击的风险。
  • 定期安全审计:定期审查和测试应用程序的代码,以发现潜在的 XSS 漏洞,并及时修复。

总体而言,存储型 XSS 攻击是一种危险的安全漏洞,要防范这种攻击,开发者需要采取多层次的防御策略,包括验证输入、转义输出、使用 CSP 等

二、实操演示:

环境准备:

测试:

打开咱们已经安装好了的 Pikachu 靶场,找到存储型 xss 这一页面

尝试在输入框中输入一些值,然后点击 submit 提交

它输出在了留言列表下面,咱们再尝试输入一些奇怪的值

<script></script>

可以看到多了个删除,这是因为咱们输入的 JavaScript 代码被执行了,说明没有做任何过滤处理

攻击:

输入以下代码到输入框中

<script>alert(/XSS 代码执行成功/)</script>

代码立马执行了,接下来咱们试试重进靶场

明显可以看到在咱们切换页面时代码就已经执行,现在咱们就来分析

分析:

网站的执行顺序涉及到前端和后端的不同阶段,以及浏览器和服务器的协同工作。下面是一个典型的网站加载和执行的顺序:

1. 服务器端执行阶段:

  1. 接收请求:
  • 当用户在浏览器中输入网址或点击链接时,浏览器向服务器发送HTTP请求。
  1. 服务器处理请求:
  • 服务器接收到请求后,执行相应的处理,可能涉及到路由解析、数据库查询、业务逻辑处理等。
  1. 生成动态内容:
  • 对于动态网页,服务器生成HTML内容,并将其返回给浏览器。这可能包括从数据库检索数据,动态生成页面。
  1. 发送响应:
  • 服务器将生成的HTML、CSS、JavaScript等资源作为HTTP响应返回给浏览器。

2. 浏览器端执行阶段:

  1. HTML解析:
  • 浏览器接收到服务器返回的HTML响应后,开始解析HTML文档构建DOM树。
  1. CSS解析:
  • 同时,浏览器解析CSS样式表构建CSSOM树。
  1. 渲染树构建:
  • 浏览器将DOM树和CSSOM树结合构建渲染树,该树用于布局和绘制页面。
  1. 页面渲染:
  • 浏览器根据渲染树进行页面布局和绘制,显示最终的页面内容。
  1. JavaScript执行:
  • 浏览器执行HTML中的内联JavaScript代码,或者加载并执行外部JavaScript文件。
  • JavaScript执行期间可能会修改DOM树,触发重新渲染。

3. 交互阶段:

  1. 用户交互:
  • 用户与页面交互,触发事件,如点击按钮、输入表单等。

  1. 事件处理:
  • 与JavaScript相关的事件处理器(event handlers)被触发,执行相应的JavaScript代码。
  1. 动态更新:
  • JavaScript代码可能会动态地修改页面内容、样式,或者进行异步请求获取数据。

这个整体的过程构成了从用户发起请求到最终页面显示的完整生命周期。需要注意的是,前端和后端的执行是并行的,并且整个过程是一个不断循环的交互过程,以响应用户的操作

由此可知,因为服务器在查询数据库中的留言时,返回到了浏览器中被其执行,所以先弹框

如果读者觉得对您有帮助,麻烦动动小手评论点点赞或者收藏关注博主,谢谢支持!!


相关文章
|
1月前
|
JavaScript 安全 前端开发
同源策略如何防止 XSS 攻击?
【10月更文挑战第31天】同源策略通过对 DOM 访问、Cookie 访问、脚本执行环境和跨源网络请求等多方面的严格限制,构建了一道坚实的安全防线,有效地防止了 XSS 攻击,保护了用户在网络浏览过程中的数据安全和隐私。
101 49
|
1月前
|
安全 前端开发 Java
Web安全进阶:XSS与CSRF攻击防御策略深度解析
【10月更文挑战第26天】Web安全是现代软件开发的重要领域,本文深入探讨了XSS和CSRF两种常见攻击的原理及防御策略。针对XSS,介绍了输入验证与转义、使用CSP、WAF、HTTP-only Cookie和代码审查等方法。对于CSRF,提出了启用CSRF保护、设置CSRF Token、使用HTTPS、二次验证和用户教育等措施。通过这些策略,开发者可以构建更安全的Web应用。
96 4
|
1月前
|
安全 Go PHP
Web安全进阶:XSS与CSRF攻击防御策略深度解析
【10月更文挑战第27天】本文深入解析了Web安全中的XSS和CSRF攻击防御策略。针对XSS,介绍了输入验证与净化、内容安全策略(CSP)和HTTP头部安全配置;针对CSRF,提出了使用CSRF令牌、验证HTTP请求头、限制同源策略和双重提交Cookie等方法,帮助开发者有效保护网站和用户数据安全。
76 2
|
1月前
|
存储 安全 Go
Web安全基础:防范XSS与CSRF攻击的方法
【10月更文挑战第25天】Web安全是互联网应用开发中的重要环节。本文通过具体案例分析了跨站脚本攻击(XSS)和跨站请求伪造(CSRF)的原理及防范方法,包括服务器端数据过滤、使用Content Security Policy (CSP)、添加CSRF令牌等措施,帮助开发者构建更安全的Web应用。
101 3
|
1月前
|
SQL 存储 安全
什么是XSS攻击?什么是SQL注入攻击?什么是CSRF攻击?
理解并防范XSS、SQL注入和CSRF攻击是Web应用安全的基础。通过采用严格的输入验证、使用安全编码实践以及实现适当的身份验证和授权机制,可以有效防止这些常见的Web攻击,保障应用程序和用户的数据安全。
42 0
|
3月前
|
存储 安全 JavaScript
XSS跨站脚本攻击详解(包括攻击方式和防御方式)
这篇文章详细解释了XSS跨站脚本攻击的概念、原理、特点、类型,并提供了攻击方式和防御方法。
588 1
|
2月前
|
存储 JavaScript 安全
|
2月前
|
存储 JavaScript 前端开发
Xss跨站脚本攻击(Cross Site Script)
Xss跨站脚本攻击(Cross Site Script)
|
4月前
|
存储 安全 JavaScript
解释 XSS 攻击及其预防措施
【8月更文挑战第31天】
363 0
|
4月前
|
SQL 监控 安全
在Linux中,如何检测和防止SQL注入和跨站脚本(XSS)攻击?
在Linux中,如何检测和防止SQL注入和跨站脚本(XSS)攻击?