跨站脚本攻击XSS

漏洞产生原因:

XSS攻击本质上是一种注入攻击,产生原因是Web应用对外部输入参数处理不当,攻击者将恶意代码注入当前Web界面,在用户访问时执行

漏洞攻击手段:

反射型(非持久型)XSS-将payload包含在URL参数中,每次攻击都需要用户点击这个URL

存储型(持久型)XSS-将payload存储在服务端,受害者每次访问,服务端都会在响应页面中嵌入之前存储的恶意代码,并在客户端执行

这两种都与服务端应用的处理逻辑有关系,是服务端返回的HTML源码中存在相应的弹窗代码,恶意Javascript代码在HTTP请求中被视为服务端应用的输入,并且嵌入返回的HTML页面。

基于DOM的XSS-正常应用中的Javascript程序可以接受外部的输入数据并且直接在客户端渲染和执行,处理不当导致将外部数据当作代码来执行。通常是客户端的Javascript脚本在修改和构造当前页面的DOM节点时触发恶意代码的执行。DOM型XSS漏洞出现在前端代码中,他是在Javascript代码执行时触发的,依赖真实的浏览器执行环境。所以在扫面DOM型XSS漏洞时要用到浏览器引擎,比如在扫描器中集成Webkit;然后在不同的输入节点(URL、window.name)构造payload,在Webkit中监测网页会不会执行这些payload。

Self-XSS攻击-利用社会工程学欺骗用户,让他们自己去复制恶意代码到浏览器中。防御手段-不允许粘贴Javascript伪协议的URL。

漏洞防御手段:

1、HttpOnly:配置HttpOnly属性,保护Cookie不被Javascript读取,防止会话劫持。

2、输入过滤:检查和过滤输入的参数。"XSS Filter"

3、输出转义:在输出变量时根据不同的场景有针对性的编码或转义。

4、DOM型XSS漏洞出现在前端代码中,他是在Javascript代码执行时触发的,依赖真实的浏览器执行环境。所以在扫面DOM型XSS漏洞时要用到浏览器引擎,比如在扫描器中集成Webkit;然后在不同的输入节点(URL、window.name)构造payload,在Webkit中监测网页会不会执行这些payload。

5、内容安全策略(Content Security Policy,CSP)

漏洞利用:

同源策略使恶意网站的Javascript代码无法直接获取到用户其他网站的信息。攻击者可以通过XSS攻击将恶意的Javascript代码注入到目标网站的页面中执行,从而达到跨域访问的目的。

XSSpayload本质上是一段Javascript代码,且他和应用自身的Javascript代码在统一执行环境中,所以正常应用能做的事情都能通过XSSpayload实现

1、通过读取浏览器的Cookie对象发起"Cookie劫持"攻击---防御:在Set-Cookie中给关键的Cookie设置HttpOnly属性;把Cookie与客户端IP绑定。

2、构造GET和POST请求---攻击者通过Javascript让用户发送GET和POST请求来执行Web中的功能

发送GET请求---创建Image对象,将其src属性指定为目标URL。

发送POST请求---提交表单,使用Javascript创建一个表单对象,填充表单中的字段,然后提交表单;提交更复杂的数据格式请求,使用XMLHttpRequest或Fetch API。

3、XSS钓鱼

4、XSS攻击平台---BeEF

XSS攻击技巧:P96

Javascript框架:P102

总结:P124

本文摘录总结于《白帽子讲Web安全》(第二版)

相关推荐
红姐跨境书41 分钟前
从零打造高性能 API 网关: Go 语言中的双缓冲 Dynamic Config 最佳实践
安全
Setsuna_F_Seiei1 小时前
前端转型 Agent 开发 05 之 Agent Hooks 与 Checkpointer(让 Agent 从全自动转变人为可掌控)
前端·agent·ai编程
百万蹄蹄向前冲3 小时前
风扇转了一晚上MVP专家团翻车事故
前端·人工智能
默_笙3 小时前
🏛 给 AI 配一间办公室:Harness Engineering 六大模块与它的实现
前端·javascript
linux_cfan4 小时前
videojs v10 源代码系列解读:14 · 谓词守卫:在运行时安全地调用能力
前端·javascript·音视频
kyriewen4 小时前
我扒了 10,221 条 JD:腾讯技术岗 75% 在要 AI
前端·人工智能·ai编程
白猫不黑5 小时前
Python实现简易Web弱口令爆破与防护方案
python·web安全·计算机·网络安全·黑客·信息安全·渗透测试
郑州光合科技余经理5 小时前
同城外卖小程序开发:下单成功后,后台导出能不能对上用户端状态
开发语言·前端·git·后端·uni-app·php·ai编程
迪康Defender6 小时前
终端安全实战:如何高效解决企业U盘泄密与管控难题
运维·网络·安全·web安全·终端安全管理
IT_陈寒6 小时前
Vue的响应式让我熬到凌晨三点,原来漏了这个小细节
前端·人工智能·后端