×

【2022争霸赛*干货满满】网络安全之XSS攻击与防护
  

莫冷 170129人觉得有帮助

{{ttag.title}}

哈喽,大家好,纯洁的小莫冷又来给大家科普啦
今天我们来讲讲XSS攻击

XSS攻击原理

       说起XSS,其实它和CSRF很像,CSRF是通过你打开的网站的缓存信息来进行攻击的,而XSS则是通过服务器来窃取信息的,也就是说,CSRF和XSS的目的都是窃取用户信息,而CSRF是操作客户端,XSS则是操作服务器。

反射型XSS

       既然是针对服务器的操作,那就是说服务器必须有这个漏洞才可以,而如何验证自己的服务器存不存在被XSS攻击的可能呢,其实很简单,只需要在服务器存在输入框的地方写个js脚本,看看能不能给执行就可以知道,最简单的莫过于alert弹窗,即在输入框里输入 查看浏览器是否弹窗。

下图为测试案例
点击submit后弹窗

       上图就是一个经典的反射型XSS攻击,反射型XSS的特征就是具有一次性的特征,通常通过邮件将包含XSS攻击脚本的链接发送给用户,当用户点击链接时浏览器就会执行XSS攻击脚本将黑客需要的信息发送给黑客所在的服务器。

存储型XSS
       说到这有的小伙伴就要问了,既然有反射型XSS,那是不是还有别的类型呢?没错,除了反射型XSS之外,还有存储型XSS、DOM型XSS,存储型XSS与反射型的区别在于反射型XSS依赖于用户输入,而存储型XSS则不需要用户任何输入,并且存储型XSS是永久存在的,通常为黑客在网站发布的贴子、博客、评论等位置,当你浏览此博客时,博客上存在的XSS脚本就会运行,你在此的个人信息(如cookie等)也就随之泄露了。
  
DOM型XSS

       而DOM型XSS比较特殊,owasp关于DOM型XSS的定义是基于DOM的XSS是一种XSS攻击,其中攻击的payload由于修改受害者浏览器页面的DOM树而执行的。其特殊的地方就是payload在浏览器本地修改DOM树而执行,并不会传到服务器上,这也就使得DOM型XSS比较难以检测。

网页的生成与修改

        在网站页面中有许多元素,当页面到达浏览器时,浏览器会为页面创建一个顶级的Document object文档对象,接着生成各个子文档对象,每个页面元素对应一个文档对象,每个文档对象包含属性、方法和事件。

       客户端可以通过JS脚本对文档对象进行编辑,从而修改页面的元素 。 也就是说,客户端的脚本程序可以通过DOM动态修改页面内容,从客户端获取DOM中的数据并在本地执行。由于DOM是在客户端修改节点的,所以基于DOM型的xss漏洞不需要与服务器端交互,它只发生在客户端处理数据的阶段。

攻击方式

       用户请求一个经过专门设计的URL,它由攻击者提交,而且其中包含XSS代码。服务器的响应不会以任何形式包含攻击者的脚本。当用户的浏览器处理这个响应时, DOM对象就会处理XSS代码,导致存在XSS漏洞 。

XSS攻击的防御方式

1.输入过滤

       其实上面的内容大家不难看出来,XSS攻击的主要方式就是在用户的输入侧添加JS脚本执行,那么防御起来其实也就很简单了,只要我们将用户输入进行过滤即可,比如<script>标签,不过过滤时需要注意的一点就是过滤的节点,即在什么位置进行过滤,如果仅仅在前端html页面过滤的话,若黑客直接访问后台接口,那么前端过滤就不起作用了,如果在代码在后端准备写入数据库中进行定义如何?答案也是不行的,举一个例子,如果我们提交5 < 7,此时如果在准备插入数据库进行ecapeHTML编码,此时就会编译成5 < 7,此时当前端请求数据时,此时返回页面是5 < 7是没有问题的,但是如果在像vue这些框架中使用,则无法进行转义,任然显示5 &It; 7。所以输入过滤是不行的。但是对于一些特别的输入比如电话号码,邮箱地址等等信息可以使用输入过滤。此时我们应该将侧重点放在防止浏览器恶意执行代码。

2.预防存储型和反射型XSS攻击

       存储型和反射型XSS都是在服务端取出恶意代码,输入到对性的HTML种,轰击者可以编写数据被内嵌到代码中,被浏览器执行,所以针对这两个漏洞,常见的作法就是改为纯前端渲染,把代码和数据分开,或者对HTML做充分的转义。

3.预防DOM型XSS

       DMS型XSS实际上就是前端js代码不够严谨,把不可信的数据当作代码执行了,所以我们在使用innerHTML、outerHTML、document.write时要特别小心,不要把不可信的数据当作HTML插入到页面上,尽量使用textContent和setAttribute

AF针对XSS攻击防护配置

       AF针对XSS攻击的配置项较简单,默认为开启状态,即使用默认模板即可防御XSS攻击,XSS对应的配置位置为
      

打赏鼓励作者,期待更多好文!

打赏
70人已打赏

发表新帖
热门标签
全部标签>
西北区每日一问
技术盲盒
安全效果
技术笔记
【 社区to talk】
干货满满
每日一问
新版本体验
产品连连看
GIF动图学习
技术咨询
2023技术争霸赛专题
安装部署配置
功能体验
通用技术
秒懂零信任
技术晨报
自助服务平台操作指引
原创分享
标准化排查
排障笔记本
玩转零信任
每周精选
深信服技术支持平台
POC测试案例
信服课堂视频
畅聊IT
答题自测
专家问答
技术圆桌
在线直播
MVP
网络基础知识
升级
安全攻防
上网策略
测试报告
日志审计
问题分析处理
流量管理
每日一记
运维工具
云计算知识
用户认证
解决方案
sangfor周刊
VPN 对接
项目案例
SANGFOR资讯
专家分享
技术顾问
信服故事
SDP百科
功能咨询
终端接入
授权
设备维护
资源访问
地址转换
虚拟机
存储
迁移
加速技术
产品预警公告
信服圈儿
S豆商城资讯
技术争霸赛
「智能机器人」
追光者计划
社区帮助指南
答题榜单公布
纪元平台
卧龙计划
华北区拉练
天逸直播
以战代练
山东区技术晨报
文档捉虫活动
齐鲁TV
华北区交付直播
2024年技术争霸赛
北京区每日一练
场景专题
故障笔记
排障那些事
高手请过招
升级&主动服务
高频问题集锦
社区新周刊
全能先锋系列
云化安全能力

本版版主

1
3
10

发帖

粉丝

关注

396
142
63

发帖

粉丝

关注

5
7
7

发帖

粉丝

关注

0
1
0

发帖

粉丝

关注

本版达人

新手61940...

本周建议达人

BGP网络

本周分享达人

BGP网络

本周提问达人