目录
1.XSS 跨站脚本攻击
XSS产生的原因:
- Web应用对用户输入过滤不严谨
- 攻击者写入恶意的脚本代码到网页中
- 用户访问了含有恶意代码的网页
- 恶意脚本就会被浏览器解析执行并导致用户被攻击
XSS的类型:
- 反射型XSS
- 非持久性跨站脚本的攻击
- 攻击是一次性的,仅对当前的网站产生影响,不会存储到服务器
- 攻击方式:攻击者将恶意脚本作为参数包含在URL中,当用户点击包含这些参数的链接时,恶意脚本就会被执行。
- 存储型XSS
- 持久性跨站脚本攻击
- 攻击者把恶意代码存储在服务器上,攻击行为一直存在
- 攻击方式:攻击者将恶意脚本存储到网站数据库中,当用户访问包含这些恶意脚本的页面时,就会触发XSS攻击
- DOM型XSS
- 既可能是反射型的,也有可能是存储型的
- 基于文档对象模型的漏洞
- 攻击方式:攻击者利用前端JavaScript对DOM进行操作的特性,通过修改DOM元素内容来执行恶意代码。
XSS攻击的危害:
- 盗取各类用户账号
- 控制企业数据
- 非法转账
- 网站挂马
- 控制受害者机器向其他网站发起攻击
如何验证是否存在XSS漏洞?
- 找到输入位置,比如输入框
- 找到输出位置(输入的代码在网页的那个位置进行了输出)
- 构造payload
XSS的流量分析:
- 返回包中和请求包中返回相同的攻击语句
- 返回包中的攻击语句仍包裹着script等标签
- 返回包中的攻击语句未转译
三者均满足 表明xss注入成功
XSS防御手段:
- 输入过滤
- 输出编码
- 内容安全策略
- 黑白名单
2.CSRF 跨站请求伪造攻击
攻击原理:攻击者利用你的身份,以你的名义发送恶意请求
CSRF产生的原因:通常由于服务器没有对请求头做严格的过滤引起的。
CSRF攻击的两个条件:
- 登录受信任的网站A,并在本地产生了Cookie
- 在不退出A的情况下,访问了危险的网站B
CSRF的流量:
- 从请求头中的Referer字段,判断请求是否从其它网站跳转而来
- 观察请求中是否存在CSRF Token中
CSRF的防御:
-
验证 HTTP Referer 字段
-
增加 token并验证
-
在 HTTP 头中自定义属性并验证
危害:
- 执行未授权操作
- 盗取用户信息
- 篡改用户数据
- 利用用户权限
- 影响网站功能
SSRF 服务器端请求伪造
SSRF产生的原因:
服务端提供了从其他服务器应用获取数据的功能,且没有对目标地址做过滤与限制
SSRF漏洞场景:
- 分享
- 转码
- 在线翻译
- 图片加载,下载
- 图片,文章收藏
- 未公开的API
URL中的关键字:
- share
- wap
- url
- link
- src
- source
- target
- u
- 3g
- dispaly
- sourceURL
- imageURL
- domain
危害:
1.服务探测
2.协议
3.访问敏感数据
4.内网探测
SSRF的流量:
在HTTP请求包中看见一些携带内层请求的流量
XSS CSRF SSRF三者的区别:
XSS:XSS与js代码有关,攻击者或受害者去触发,是服务器对用户输入数据没有进行严格的过滤,导致客户端浏览器在渲染服务器返回的html页面时,出现了预期值之外的脚本语句执行
CSRF:客户端发出请求,受害者触发,服务端没有对用户提交的数据进行严格的校验,导致攻击者可以利用用户的Cookie信息伪造用户请求发送至服务器
SSRF:服务端发起请求,SSRF是服务器对用户提供的可控URL过于信任,没有对攻击者提供的URL进行地址的限制和严格的检测,导致攻击者可以以此为跳板机攻击内网