跨站脚本攻击(XSS)

devtools/2024/9/24 6:53:14/

免责申明

        本文仅是用于学习测试自己搭建的XSS注入漏洞使用,请勿用在非法途径上,若将其用于非法目的,所造成的一切后果由您自行承担,产生的一切风险和后果与笔者无关;本文开始前请认真详细学习《‌中华人民共和国网络安全法》‌及其所在国家地区相关法规内容【学法时习之丨网络安全在身边一图了解网络安全法_中央网络安全和信息化委员会办公室】 如您继续阅读该文章即表明您默认遵守该内容。

一、XSS介绍

1.1、什么是XSS

        XSS(全称:Cross Site Scripting【跨站脚本攻击】),为了避免和CSS(全称:Cascading Style Sheets【层叠样式表】)名称混淆冲突,故改名为:XSS;是一种常见的Web应用程序代码注入安全漏洞之一。攻击者可以利用这种漏洞在网站上注入行恶意代码,用户在不知情的情况下访问这些被注入了恶意代码的网站内容,导致用户自己的账户、会话cookie、键盘输入内容等敏感信息被攻击者盗取,攻击者可以利用这些信息突破网站的访问限制并冒充受害用户进行操作。

        XSS属于客户端攻击,侧重于跨站点窃取数据,受害者最终是用户,但特别要注意的是网站管理人员也属于用户之一(这就意味着XSS可以进行"服务端"攻击,因为管理员要比普通用户的权限大得多,一般管理员都可以对网站进行文件管理,数据管理等高级别的权限操作,而攻击者一般也是靠管理员身份作为“跳板”进行实施攻击)。XSS最常用的攻击代码是javascript语言,故想要深入研究XSS,必须要精通Javascript。XSS存储型攻击流程如下图所示:

 XSS是OWASP上2017年第七名最常见的Web应用程序漏洞icon-default.png?t=O83Ahttps://owasp.org/www-project-top-ten/2017/A7_2017-Cross-Site_Scripting_(XSS).html

1.2、XSS漏洞出现的原因

        之所以Web应用程序网站会出现跨站脚本攻击漏洞(XSS)是由于开发这些Web程序网站的人员对所有涉及到的输入输出内容没有进行严格的判断和过滤,导致攻击者将“精心构造”的恶意脚本输入后,再输出到前端时被浏览器当作有效代码解析执行从而产生危害

1.3、XSS的危害

XSS的危害
序号xss的危害内容
1劫持用户浏览器,将用户当前使用的cookie、sessionID等敏感信息发送至攻击者控制的网站或服务器中
2构造虚假的网站页面内容,欺骗用户执行操作,导致用户所有的输入内容都会被发送到攻击者的服务器上(各种网络钓鱼:凭据收集、广告劫持(广告注入)、点击劫持、将用户重定向到恶意网站等)
3有限的监控获取用户的键盘记录内容
4从本地会话 Web 存储、cookie、IndexedDB、页面源代码中窃取数据,截取屏幕截图
5远程代码执行(浏览器漏洞、CMS 漏洞)
6内容欺骗、窃取地理位置、捕获音频、网络摄像头数据(尤其是在各类的社交平台,邮件系统,开源流行的Web应用,BBS,微博等场景中的危害范围广)

二、XSS分类

可以下载phpStudy配合xss_labs项目进行XSS的测试。

2.1、反射型xss或不持久型xss(中低危)

        交互的数据不会被存在Web网站数据库,只是简单的把用户输入的数据内容反射给浏览器进行展示,一次性效果。(非持久型xss攻击是一次性的,仅对当前的页面访问产生影响。即:要求用户访问一个被攻击者篡改后的链接,用户访问该链接时,被植入的攻击脚本被用户游览器执行,从而达到攻击目的。

        一般出现在搜索栏,用户登录等地方,常用来窃取客户端的Cookie进行钓鱼欺骗。(需要用户去点击)

 

2.2、DOM型xss

        不与web网站的后台服务器产生数据交互,是一种直接通过DOM操作前端代码输出的时候产生的漏洞,大部分属于反射型,少部分属于存储型(Dom型xss属于有可能是持久也可能是非持久型)。

        DOM(全称:Document Object Model【文档对象模型】)当你创建好一个html页面并加载到浏览器时,浏览器就生成了一个对应的文档对象模型,该模型会把html网页文内容转换为一个文档对象,该文档对象主要功能是处理这个网页内容。而Javascript 语言就是用来操作这个文档对象模型内容,从而达到操作控制网页效果【即:DOM型xss的产生原因是由于前端js代码的DOM操作导致】。

# 可能触发DOM型的js内容
document.referer
window.name
location
innerHTML
document.write
# DOM型的XSS漏洞一般是闭合现有标签构造新标签或增加属性内容
' onclick="alert(1111)"
' onclick="alert('xss')">
javascript:alert(1)'"><img src="#" onmouseover="alert('xss')">


http://www.ppmy.cn/devtools/116378.html

相关文章

ubuntu内网穿透后在公网使用ssh登录

需求&#xff1a; 我有一台内网可以通过ssh 22端口访问的设备操作系统是ubuntu server我还有1台拥有公网IP的服务器&#xff0c;IP地址是 6.66.666.6666我想随时从其他网段通过ssh访问我的ubuntu server设备 实现&#xff1a; 工具准备&#xff1a;frp 网址&#xff1a;https…

Python 复制Excel 中的行、列、单元格

在Excel中&#xff0c;复制行、列和单元格是日常工作中经常需要进行的操作&#xff0c;它可以帮助你快速调整数据布局、复制数据模板或进行数据的批量处理。 本文将详细介绍如何使用Python将Excel中的行、列、或单元格范围复制到指定位置。 所需Python库 要使用Python操作Exc…

得物App荣获新奖项,科技创新助力高质量发展

近日&#xff0c;备受瞩目的2024中国国际服务贸易交易会&#xff08;简称“服贸会”&#xff09;在北京盛大开幕&#xff0c;这一全球唯一的国家级、国际性、综合型服务贸易盛会再次汇聚了全球服务贸易领域的精英与前沿成果。服贸会由商务部和北京市政府携手打造&#xff0c;并…

flink 批量压缩redis集群 sink

idea maven依赖 <dependency> <groupId>org.apache.bahir</groupId> <artifactId>flink-connector-redis_2.11</artifactId> <version>1.0</version> </dependency> <dependency> <groupId>redis.clients</gr…

JDK7u21 HashMap版

今天在搞ROME HotSwappableTargetSource链的时候突然发现&#xff0c;JDK7U21反序列化链不仅HashMap.put触发了key.equals putForCreate也调用了 而且HashMap.readObject直接调用了putForCreate来还原 what?直接向HashMap两个put不就完了&#xff0c;还搞什么HashSet 开弄&am…

鸿蒙​​​​​​保障应用开发安全的技术措施

应用开发安全是指在开发过程中嵌入安全能力&#xff0c;使应用程序从源头上安全可靠。 开发者是应用程序的创作者&#xff0c;合法的开发者是创作出安全、可靠应用的前提条件;为了保证应用开发者身份真实可信&#xff0c;鸿蒙通过开发者证书对应用进行签名&#xff0c;保证应用…

MySQL增删面试题

哈喽&#xff0c;各位小伙伴们&#xff0c;你们好呀&#xff0c;我是喵手。运营社区&#xff1a;C站/掘金/腾讯云/阿里云/华为云/51CTO&#xff1b;欢迎大家常来逛逛 今天我要给大家分享一些自己日常学习到的一些知识点&#xff0c;并以文字的形式跟大家一起交流&#xff0c;互…

深度学习:(七)梯度下降法在神经网络中的应用

梯度下降法在神经网络中的应用 事先规定&#xff1a; 用 n n n 表示个数&#xff08;维度&#xff09;: n [ 0 ] n x n^{[0]}n_x n[0]nx​ &#xff0c;表示单个训练样本 x x x 的元素个数&#xff1b; n [ 1 ] n^{[1]} n[1] 表示隐藏层 1 1 1 的单元&#xff08;节点&am…