论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
ToB企服应用市场:ToB评测及商务社交产业平台
»
论坛
›
安全
›
网络安全
›
【XSS攻击介绍(一)】
【XSS攻击介绍(一)】
篮之新喜
金牌会员
|
2022-6-26 06:47:31
|
显示全部楼层
|
阅读模式
楼主
主题
874
|
帖子
874
|
积分
2632
目录
一、前言
二、攻击条件和漏洞验证方法
三、XSS漏洞分类
四、利用方法
五、XSS payload变形
六、防护总结
一、前言
XSS:跨站脚本攻击,即CSS。利用网页开发时留下的漏洞(web应用程序对用户的输入过滤不足),巧妙的将恶意的代码注入到网页中,使用户浏览器加载并执行恶意制造的代码,以达到攻击的效果。这恶意的代码通常是JS代码,但实际上也可以是JAVA、VBS、ActiveX、Flash或者是普通的HTML。(浏览器不会判断,只要是符合解析,那么就会执行恶意的代码)。可能存在XSS的地方:微博、留言板、聊天室等收集用户输入的地方都可能遭受XSS攻击的风险。只要你对用户的输入没有严格过滤。
二、攻击条件和漏洞验证方法
攻击条件:1. 需要向WEB页面注入精心构造的恶意代码。
2. 对用户的输入没有做过滤或者过滤不严谨,恶意代码能够被浏览器成功执行。
验证XSS漏洞存在的一般方法:可以使用script标签来手动检测。
如:
反射型xss将数据插入到页面中:
XSS漏洞有如下的危害:盗取各种用户的账号、窃取用户的cookie然后冒充用户甚至是管理员进入网站、劫持用户会话,执行任意操作、刷流量,广告弹窗、网页挂马传播蠕虫病毒、记录用户键盘输入。
三、XSS漏洞分类
反射性XSS :非持久型的XSS,没有长期被放在服务器中,是现在最容易出现的一种XSS 漏 洞。当用户在请求某一个URL得治的时候,会携带某一部分数据。当客户端进行访问某一条链接的时候,攻击者就可以将恶意的代码植入到URL中,如果服务器端未对URL的参数做判断或者是过滤,直接就返回相应页面,那么XSS攻击代码就会一起被传输到用户的浏览器,从而出发反射型XSS。可配合短链接实现钓鱼。反射型XSS的payload常常是构造在网站的某一个通过GET传递的参数中。(对应的数据流向是:浏览器---后端---浏览器)
存储型XSS :存储型XSS又叫做持久型XSS。它是危害最大的XSS。这种类型的XSS可以将恶意的攻击代码持久化的保存在服务器上,然后被显示到HTML页面中。此类型的XSS漏洞经常出现 在用户评论的页面,将攻击者精心构造的恶意代码保存在数据库中。如果其他的用户访问到该页面时就会触发恶意的XSS代码执行,从而窃取用户的信息。(数据流向:浏览器---后端---数据库---后端---浏览器)
DOM型XSS :DOM是由许多不同类型的节点共同组成,主要由元素节点、文本节点、属性节点。DOM型XSS漏洞是基于文档对象模型的一种漏洞。这种XSS和反射型XSS、存储型XSS的原理上由本质的区别,它的攻击代码不需要服务器解析响应,触发XSS依靠的是浏览器端的DOM解析。客户端上的JS脚本可以访问浏览器的DOM并修改页面的内容,不依赖服务器的数据,直接从浏览器端获得数据并执行。在客户端直接输出DOM内容的时候非常容易触发DOM型XSS漏洞,如doccment.getElementByld("x").innerHTML、doccument.write等。
四、利用方法
1. XSS构造以及变形:
利用构造html标签和标签
如:
2. 利用HTML标签的属性值--伪协议
如:
hello
3. 利用JS事件
如:
常见的事件:
4. 古老的CSS利用方法
利用CSS层叠样式表来触发XSS,基本上不能适合现在的主流浏览器。
如:
五、XSS payload变形
1. 大小写混编:
click me
2. 双写关键字:
alert(/xss/)
3. /代替空格:
4. 反引号代替双引号:
5. tab水平制表符和回车:在一些位置添加Tab和回车符号来绕过关键字检测
1.
2.
click me!
click me!
6. HTML实体编码和URL编码:
六、防护总结
对于存储型和反射型:1. 修改为纯前端渲染,把代码和数据分开。浏览器先加载静态的HTML,此HTML中不包含任何跟业务相关的数据。然后浏览器执行HTML中的JavaScript。JavaScript通过Ajax加载业务数据,调用DOM API更新到页面上。但是纯前端的渲染还要避免DOM型XSS漏洞,如:onload和Javascript:xxx事件。2. 对HTML做充分的转义操作。非必要不使用HTML拼接,如果拼接HTML是必要的,就要采用市面上安全合适的转义库,对HTML模板进行充分的转义。常用的模板引擎有:doT.js、ejs、FreeMarker等。。
对于DOM型XSS攻击,在使用.innerHTML outerHTML document.write()时不要把不可信的数据插入到HTML页面中,应尽量使用.textContent .setAttribute()等。 如果使用到Vue/React技术栈,不使用v-html/dangerouslySetInnerHTML功能,就在前端render阶段避免innerHTML、outerHTML的XSS隐患。尽量避免使用DOM中的内联事件监听器,如:location onclick onerror onload onmouseover以及标签的href属性,javascript的eval()、setTimeout()、setInterval()等,都能将恶意的字符串作为代码运行。如果项目中有用到这些的话,一定要避免在字符中拼接不可信的数据。
其他方法:输入内容长度控制,虽然无法完全避免xss,但是可以增加攻击难度。HTTP-only Cookie:禁止javascript读取某些敏感的cookie,就算攻击者完成攻击也无法读取cookie。加入验证码机制:防止脚本冒充用户提交危险操作。执行严格的CSP(Content Security Policy)策略。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
篮之新喜
金牌会员
这个人很懒什么都没写!
楼主热帖
XtraBackup 搭建从库的一般步骤及 Xtra ...
Docker三剑客之Machine
通过Go语言创建CA与签发证书 ...
[回馈]ASP.NET Core MVC开发实战之商城 ...
rustdesk自建服务器总是掉线 未就绪, ...
Java毕业设计-音乐管理系统
8行代码实现快速排序,简单易懂图解! ...
LyScript 从文本中读写ShellCode
Phabricator Conduit API介绍
三天吃透Kafka面试八股文
标签云
存储
服务器
浏览过的版块
Java
快速回复
返回顶部
返回列表