XSS(跨站脚本攻击)

XSS属于客户端攻击,受害者最终是用户。但特别要注意的是网站管理员也属于用户之一,这就意味着XSS可以进行“服务端”攻击,因为管理员要比普通用户的权限大得多,一般管理员都可以对网站进行文件管理,数据管理等操作,而攻击者一般也是靠管理员身份作为“跳板”进行实施攻击。

XSS攻击最终目的是在网页中嵌入客户端恶意脚本代码,最常用的攻击代码是javascript语言,但也会使用其它的脚本语言,例如:ActionScript、VBscript。而如今的互联网客户端脚本基本是基于Javascript,所以如果想要深入研究XSS,必须要精通Javascript。

XSS换句话说,JavaScript能做到什么效果,XSS的胃里就有多大。这完全不是危言耸听。javascript可以用来获取用户的cookie,弹出窗口,那么存在XSS漏洞的网站,XSS就可以用来盗取用户Cookie,废掉页面,导航到恶意网站!更高端的XSS代码完全可以进行监控你的键盘操作,模仿Windows注销界面,诱导你输入开机密码!而攻击者需要做的仅仅是向你的代码中注入Javascript代码!

特征::'">代表插入任意代码 可以加一个弹窗 能弹出来就是 XSS 漏洞。

CSRF(跨站请求伪造)

攻击者会伪造一个请求(这个请求一般是一个链接URL),然后欺骗目标用户进行点击,用户一旦点击了这个请求,整个攻击就完成了。所以CSRF攻击也成为"one click"攻击。攻击者盗用了你的身份,以你的名义发送恶意请求

CSRF的攻击建立在浏览器与Web服务器的会话之中。欺骗用户访问URL。登录受信任站点A,并在本地生成Cookie。在不登出A的情况下,訪问危急站点B。携带攻击者指令访问信任站点A。XSS 是实现 CSRF 的诸多手段中的一种。

XSS和CSRF的区别

XSS不需要登录,CSRF需要用户登录信息

XSS攻击客户端,CSRF访问服务端

XSS劫持用户信息,CSRF伪造用户身份访问正常网站

SSRF(服务器端请求伪造)

是一种由攻击者构造形成由服务端发起请求的一个安全漏洞。一般情况下,SSRF是要目标网站的内部系统。(因为他是从内部系统访问的,所有可以通过它攻击外网无法访问的内部系统,也就是把目标网站当中间人或者跳板

SSRF漏洞就是通过篡改获取资源的请求发送给服务器,但是服务器并没有检测这个请求是否合法的,然后服务器以他的身份来访问其他服务器的资源。

CSRF和SSRF的区别

CSRF 是跨站请求伪造攻击,由客户端发起;

SSRF 是服务器端请求伪造,由服务器发起;

重放攻击是将截获的数据包进行重放,达到身份认证等目的。

XEE(XML外部实体注入)

在应用程序解读XML输入时,当允许引入外部实体时,可构造恶意内容,导致读取恶意文件,探测内网端口,攻击内网网站,发起DOS拒绝服务攻击,执行系统命令等。

XML用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。XML文档结构包括XML声明、DTD文档类型定义(可选)、文档元素。

XSS、SSRF、CSRF、XXE 漏洞的各自原理

XSS

程序对输入和输出的控制不够严格,导致"精心构造“的脚本输入后,在输到前端时被浏览器当作有效代码解析执行从而产生危害.

CSRF

程序员开发的时候,未对相关页面进行token和referer判断,

SSRF

大都是由于服务端提供了从其他服务器应用获取数据的功能,且没有对目标地址做过滤与限 制。比如从指定 URL 地址获取网页文本内容,加载指定地址的图片,文档,等等。

XXE

运 维 人 员 使 用 低 版 本 PHP , libxml 低 于 2.9.1 , 就 会 造 成 程 序 员 或 者 XXE 设 置 了 libxml_disable_encity_loader(FALSE) 这个意思是禁用加载外部实体

XSS、SSRF、CSRF、XXE 漏洞的各自危害

XSS

1) 挂马

2) 钓鱼 钓鱼页面弹出一个弹窗出来 让用户输入账号名和密码,做一个和登录页面一样的

3) 劫持用户 cookie 构造语句里插入木马

4) 有局限性的键盘记录

CSRF

1) 拖库

2) 修改密码

DVWA 打开一个网址ilities/csrf/?password_new=123&password_conf=123&Change= Change) 不关闭此浏览器选项卡的情况下,打开新窗口页面(保持 cookie 可用),就可以完成 密码修改。

3)修改交易等

SSRF

用 http,file,php 协议来进行内网探测,文件读取

1).可以对外网、服务器所在内网、本地进行端口扫描,获取一些服务的 banner 信息;

2).攻击运行在内网或本地的应用程序(比如溢出);

3).对内网 web 应用进行指纹识别,通过访问默认文件实现;

4).攻击内外网的 web 应用,主要是使用 get 参数就可以实现的攻击(比如 struts2,sqli 等);

5).利用 file 协议读取本地文件等。

XXE

XML 中可以通过调用实体来请求本地或者远程内容,和远程文件保护类似,会引发相关安 全 问 题 , 例如敏感文件读取

XSS、SSRF、CSRF、XXE 漏洞的各自存在地方

XSS存在的地方

1)html

2)context(上下文,浏览器响应式拼接好的内容)、

3)URL context(对浏览器来说是页面路径上的参数 对服务端来说是请求时携带的参数 请求头等)

4)spript(代码里的变量数据)

漏洞分类:

1) 反射:(一次性不存储在浏览器里) 放在网站的根目录下,也可以发邮件让别人去触发

2)存储:(永久存储在数据库高危)

3)Dom:(浏览器标签)不与后台服务器产生交互

测试方法:

工具:APPscan、Awvs、 手工:burpsuite,主要考虑哪里有输入、输出在什么地方

(1)在目标站点上找到输入点,比如查询接口,留言板等;

(2)输入一组"特殊字符+唯一识别字符",点击提交后,查看返回的源码,是否有做对应的处理;

(3)通过搜索定位到唯一字符,结合唯一字符前后语法确认是否可以构造执行 js 的条件(构 造闭合);提交构造的脚本代码,看是否可以成功执行,如果成功执行则说明存在 XSS 漏洞; 万能构造:'">代表插入任意代码 可以加一个弹窗 能弹出来就是 XSS 漏洞

怎么绕过:

1)前端限制

2)大小写混合

3)编码绕过

4)注释干扰后台

5)alert(弹窗) confirm(确认) prompt(弹出一个让用户在浏览器里面输入东西的框)

Document.location 获取本地的 cookie 信息

防御:

1) 输入过滤(对用户输入的内容进行过滤,比如输入账号密码 没有过滤直接输入个 payload 程序直接 payload 执行)

2) 输出实体编码(账号密码 回车登录 执行的结果)

3) 使用 HTTP only

CSRF存在的地方

1)修改密码地方

2)添加用户的地方

3)数据库备份

4)数据交易、支付

漏洞分类:

1)站内:由于程序员滥用$_REQUEST(请求)类变量造成的(比如:本来要求用户从表单提交发起POST请求传递参数给程序,但是由于使用了$_REQUEST等变量,程序除支持接收POST请求传递的参数外也支持接收GET请求传递的参数,这样就会为攻击者使用CSRF 攻击创造条件)

2)站外:就是传统意义上的外部提交数据问题(用户在会话状态下点击链接访问站外Web 页面)

测试方法:

Burp 抓包(抓取一个正常请求的数据包,去掉Referer字段后再重新提交,如果该提交还有效,那么基本上可以确定存在CSRF漏洞)

防御:

1)校验 referer 字段

2)添加 token 值

3)白名单过滤

4)验证码登录

SSRF存在的地方

所有调外部资源的参数都有可能存在 ssrf 漏洞

1)分享:通过 URL 地址分享网页内容

2)转码服务

3)在线翻译

4)图片加载与下载:通过 URL 地址加载或下载图片

5)图片、文章收藏功能

6)未公开的 api 实现以及其他调用 URL 的功能

7)从 URL 关键字中寻找 share、wap、url、link、src、source

测试方法:

怎么绕过:

1)改 ip 地址写法

2)转码:8 进制、16 进制、10 进制

防御:

黑名单过滤:

1)过滤 10.0.0.1/8 172.16.0.0/12 192.168.0.0/16

2)过滤 file:///、dict://、gopher://、ftp:// 危险 schema

3)​对返回的内容进行识别最佳方法:

1)使用地址白名单

2)对返回内容进行识别

3)需要使用互联网资源(比如贴吧使用网络图片)而无法使用白名单的情况:首先禁用

CURLOPT_FOLLOWLOCATION;然后通过域名获取目标 ip,并过滤内部 ip;最后识别返回的内容是否与假定内容一致

XXE存在的地方

1)抓包看 accept 头是否接受 xml

2)抓包修改数据类型,把 jison 改成 xml 来传输

测试方法:

1)有回显:(代码)

2)无回显:建立.dtd(代码)  xml 调用(代码)

防御

1)升级 php 版本

2)程序员修改代码

3)过滤关键词(doctype、entity、system、public)

XSS、SSRF、CSRF、XXE 漏洞的区别相关推荐

  1. SRC挖洞之SSRF与XXE漏洞的实战案例

    文章目录 前言 SSRF漏洞 案例1 某翻译网SSRF可通内网 案例2 某翻译网SSRF防护绕过 案例3 某站SSRF读取本地文件 案例4 某站视频解析导致SSRF 案例5 某狗主站SSRF多种绕过 ...

  2. SQL注入、XSS、XXE、CSRF、SSRF、越权漏洞、文件上传、文件包含总结篇

    漏洞总结篇 SQL注入 什么是SQL注入? 怎么防御? 过滤特殊字符 修改php.in 使用mysqli_real_escape_string()函数 加固数据库方面 加固管理方面 Mybatis 防 ...

  3. php csrf攻击 xss区别,用大白话谈谈XSS与CSRF

    这两个关键词也是老生常谈了,但是还总是容易让人忘记与搞混~. XSS与CSRF这两个关键词时常被拉出来一起比较(尤其是面试),我在这里也在写一篇扫盲文,也帮自己整理一下知识脉络. 这篇文章会用尽量&q ...

  4. 如何用漫画说明 XSS 和 CSRF 的区别?

    互联网的正常工作过程: 张三被捕 但是如果有漏洞被XSS攻击: XSS是跨站点脚本攻击(Cross Site Scripting),为了不与层叠样式表(Cascading Style Sheets,C ...

  5. php csrf攻击 xss区别,XSS与CSRF攻击及防御方法

    前言 web安全这词可能对于服务端工程师来说更加"眼熟",部分前端工程师并不是十分了解,今天就来讲讲XSS攻击与CSRF攻击及防御方法 XSS XSS (Cross Site Sc ...

  6. Zimbra邮件服务器利用XXE漏洞与SSRF完成对目标的文件上传与远程代码执行

    前言 原文地址:https://blog.tint0.com/2019/03/a-saga-of-code-executions-on-zimbra.html 参考文档:https://blog.cs ...

  7. 总结 XSS 与 CSRF 两种跨站攻击

    在那个年代,大家一般用拼接字符串的方式来构造动态 SQL 语句创建应用,于是 SQL 注入成了很流行的攻击方式.在这个年代, 参数化查询 [1] 已经成了普遍用法,我们已经离 SQL 注入很远了.但是 ...

  8. XSS和CSRF详解与防御

    开年遇到的第一个问题就是解决XSS攻击>_<,可见要时刻保证网站的安全性至关重要.做好网站安全,不仅维护网站的稳定性,更保证用户数据的一致性.对此,总结一下笔者在工作中遇到的安全问题以及防 ...

  9. 浅谈Web前端安全策略xss和csrf,及又该如何预防?

    Web前端安全策略xss和csrf的攻击和防御 一.XSS跨站请求攻击 1.什么是XSS 2.场景模拟 3.XSS的攻击类型 4.如何防御XSS 二.XSRF跨站请求伪造 1.什么是csrf 2.场景 ...

最新文章

  1. Script:优化crs_stat命令的输出
  2. linux远程执行shell命令行,linux shell 远程执行命令--ftp
  3. apache整合tomcat部署集群
  4. 网易第二季度营收205亿元 同比增长13%超预期
  5. 蚂蚁金服上市诞生千个亿万富翁,财富自由,离你不远!
  6. 20190907:(leetcode习题)打家劫舍
  7. [转载] 用pandas进行数据分析实战
  8. springMVC之自定义视图
  9. (转)2020年网络安全产业图谱
  10. 在Linux下如何安装Jupyter Notebook
  11. Boost组件lexical_cast
  12. 使用java命令执行函数反弹windows-shell
  13. iptables四表五链及基本使用
  14. PL3376C-ASEMI恒压原边控制PL3376C
  15. 在PGConf.Asia-中文技术论坛,聆听腾讯云专家对数据库技术的深度理解
  16. C++11 emplace_back
  17. 封装CopyFileEx函数,实现文件复制中的暂停,控速,获取进度
  18. 虚拟机MAC地址冲突,如何生成新的mac地址
  19. Q1净亏损逾6亿美元,悬在波音头上的利剑何时落下?
  20. [资料]传说中的CIA总部的kryptos密码

热门文章

  1. 深入解析:如何修复SSL / TLS握手失败错误(中)
  2. 高阶等差数列的一些性质
  3. C++ 之 String类详解
  4. Shell脚本学习指南(六)——输入/输出、文件与命令执行
  5. python二次开发ug_二次开发 | 手把手教你用python进行后处理
  6. 重定向转发,接收请求参数及数据回显-P11,12
  7. hexo博客插入音乐播放器
  8. 北工大计算机学院博导,北工大计算机学院计算机科学与技术导师介绍:李玉鉴...
  9. 数据分析方法——回归分析
  10. C++基础知识 - 布尔(bool)类型