XSS(跨站脚本攻击)相关内容总结整理

XSS的攻击相关资料整理文章目录XSS的攻击相关资料整理跨站脚本攻击(XSS)XSS 简介XSS 危害XSS 原理XSS 分类XSS 防御总结XSS 问答参考资料跨站脚本攻击(XSS)XSS 简介人们经常将跨站脚本攻击(Cross Site Scripting)缩写为CSS,但这会与层叠样式表(Cascading Style Sheets,CSS)的缩写混淆。因此,有人将跨站脚本攻击缩写为XSS。跨站脚本攻击(XSS),是最普遍的Web应用安全漏洞。这类漏洞能够使得攻击者嵌入恶意脚本代码到正常用户

大家好,又见面了,我是全栈君。

XSS的攻击相关资料整理

跨站脚本攻击(XSS)

XSS 简介

人们经常将跨站脚本攻击(Cross Site Scripting)缩写为CSS,但这会与层叠样式表(Cascading Style Sheets,CSS)的缩写混淆。因此,有人将跨站脚本攻击缩写为XSS
跨站脚本攻击(XSS),是最普遍的Web应用安全漏洞。这类漏洞能够使得攻击者嵌入恶意脚本代码到正常用户会访问到的页面中,当正常用户访问该页面时,则可导致嵌入的恶意脚本代码的执行,从而达到恶意攻击用户的目的。
攻击者可以使用户在浏览器中执行其预定义的恶意脚本,其导致的危害可想而知,如劫持用户会话,插入恶意内容、重定向用户、使用恶意软件劫持用户浏览器、繁殖XSS蠕虫,甚至破坏网站、修改路由器配置信息等。

XSS 危害

1.网络钓鱼,包括盗取各类用户账号;
2.窃取用户cookies资料,从而获取用户隐私信息,或利用用户身份进一步对网站执行操作;
3.劫持用户(浏览器)会话,从而执行任意操作,例如进行非法转账、强制发表日志、发送电子邮件等;
4.强制弹出广告页面、刷流量等;
5.网页挂马;
6.进行恶意操作,例如任意篡改页面信息、删除文章等;
7.进行大量的客户端攻击,如DDoS攻击;
8.结合其他漏洞,如CSRF漏洞,实施进一步作恶;
9.传播跨站脚本蠕虫等。

  1. 盗取各类用户帐号权限(控制所盗窃权限数据内容),如机器登录帐号、用户网银帐号、各类管理员帐号
  2. 控制企业数据,包括读取、篡改、添加、删除企业敏感数据的能力
  3. 基于XSS的跨站业务请求(如:非法转账、非法下单、非法转载/发表内容、发送电子邮件、利用管理员身份提权挂马、控制受害者机器向其它网站发起攻击等)
  4. 形成持久化APT攻击,长期控制网站业务中枢
  5. 利用跨站业务形成蠕虫病毒式传播
  6. 劫持网站,劫持后可用于钓鱼、伪装、跳转、挂广告等,属挂马类型

XSS跨站脚本,是一种Web安全漏洞,有趣是是他并不像SQL注入等攻击手段攻击服务端,本身对Web服务器没有危害,攻击的对象是客户端,使用浏览器访问这些恶意地址的网民。

在这里插入图片描述

XSS 原理

HTML是一种超文本标记语言,通过将一些字符特殊地对待来区别文本和标记,例如,小于符号(<)被看作是HTML标签的开始,之间的字符是页面的标题等等。当动态页面中插入的内容含有这些特殊字符(如<)时,用户浏览器会将其误认为是插入了HTML标签**,当这些HTML标签引入了一段JavaScript脚本时,这些脚本程序就将会在用户浏览器中执行**。所以,当这些特殊字符不能被动态页面检查或检查出现失误时,就将会产生XSS漏洞。

主要的攻击是在HTML中加入了**JavaScript脚本,**这个脚本可能会写一些发起攻击的代码。

标签中,或者标签的属性中都可以加入脚本。详情看下面《XSS的原理分析与解剖》博文说明。
**XSS攻击:**xss就是在页面执行你想要的js,只要能允许JS,就能获取cookie(设置http-only除外),就能发起一些事件操作等。

《XSS的原理分析与解剖》:https://www.freebuf.com/articles/web/40520.html

注:评论内容摘要

1、chrome内核与ie内核不一样,chrome的过滤机制比ie强。现在测试xss一般都拿能过chrome的为主
2、现在的chrome浏览器默认开启了xss过滤机制,可以通过关闭该机制来进行xss测试,方法如下: windows下,右键桌面中的”Google Chrome”快捷键,然后在目标选项,chrome.exe后面加上参数:–args –disable-xss-auditor即可。

XSS 的本质是:恶意代码未经过滤,与网站正常的代码混在一起;浏览器无法分辨哪些脚本是可信的,导致恶意脚本被执行。

注入方式:不仅仅是业务上的“用户的 UGC 内容”可以进行注入,包括 URL 上的参数等都可以是攻击的来源。在处理输入时,以下内容都不可信:

  • 来自用户的 UGC 信息
  • 来自第三方的链接
  • URL 参数
  • POST 参数
  • Referer (可能来自不可信的来源)
  • Cookie (可能来自其他子域注入)

XSS 分类

根据攻击的来源,XSS 攻击可分为存储型、反射型和 DOM 型三种。

类型 存储区 插入点
存储型XSS 后端数据库 HTML
反射型 XSS URL HTML
DOM 型 XSS 后端数据库/前端存储/URL 前端 JavaScript
  • 存储区:恶意代码存放的位置。
  • 插入点:由谁取得恶意代码,并插入到网页上。

具体参看:前端安全系列(一)

反射XSS是XSS分类中最多的,他们原理是下面这样:
Hacker——发现存在反射XSS的URL——根据输出点的环境构造XSS代码——进行编码、缩短(可有可无,是为了增加迷惑性)——发送给受害人——受害打开后,执行XSS代码——完成hacker想要的功能(获取cookies、url、浏览器信息、IP等等)

存储型XSS不像反射型XSS,需要访问特定的URL或者用户去手动点击触发,如果存在存储型的恶意劫持代码,那么可能发生的是全范围的扫射攻击,受攻击的用户多。

如 留言板 存在恶意劫持代码,那后面所有访问此留言板页面的用户都会中枪。

基于QtWebKit的DOM XSS检测技术,地址:
https://security.tencent.com/index.php/blog/msg/12

XSS 防御总结

XSS 攻击有两大要素:

  1. 攻击者提交恶意代码。
  • 后台处理,转义可能存在的掉html标签。但是在转义的时候可能出现 将 大于> 、小于 < 转义,可能出现错误的转义。要根据实际的业务做相应的调整。
    如需要保存: 2>7 ,则会转义为:2>7
  1. 浏览器执行恶意代码。

前端处理,有一些前端框架已经默认做xss相应的处理。

后端和前端一起协作,终可防御xss攻击。

在这里插入图片描述

截图内容来源:前端安全系列(一)

XSS 问答

来源: https://gitbook.cn/books/5a26a88d5d69d22a8f0adc5f/index.html

问:xss攻击在GET和POST请求中有什么实际不同?
**答:**这个区别不大,请求提交方式不一样。post操作不可能绕开javascript的使用,只是难度不一样。


问:xss窃取的cookie怎么防止被利用?
**答:**窃取的cookie防止利用可以增加一个时效性或者绑定用户。


问:xss和csrf区别是什么?
答: csrf是伪装信任用户进行操作,登陆会话状态都是正常的,xss不同。csrf成功的前提用户必须登录到目标站点,且用户浏览了攻击者控制的站点。与xss最为不同一点是csrf可以不用js就能达到目的,完全是正常用户操作。
csrf修复方法:cookie认证,非持久性cookie请求加入随机数,增加风险操作二次认证。


问:预防xss攻击有什么迅速的有效手段吗?

答: HttpOnly防止劫取cookie,另外还有owasp中也有防xss的API库。在前端对数据过滤一次,在后端也过滤一次,确保万无一失,没毛病。


问:xss过滤字符问题怎么办?

**答:**尖括号,反斜杠等特殊字符一定要注意好,可以使用ESAPI提供的函数进行编码,具体参考一下GitChat文章标题内容的特殊字符转义,除了阿拉伯数字和字母,对其他所有的字符进行编码,只要该字符的ASCII码小于256。编码后输出的格式为 &#xaa,以&#x开头,aa则是指该字符对应的十六进制数字,分号作为结束。


问:xss有书籍推荐吗?

答: xss有一本专业的,书名是《xss跨站脚本攻击剖析与防御》红色封皮,logo是罗马头盔。专门讲xss这一部分的,可以观摩学习一下。


问:刚学习了解OWASP,你有什么好方法去学习和实践其中的方法,如top 10?若要进入白帽子领域,OWASP是否是个很好的切入点?有其它好的途径和方法吗?

**答:**用靶机练吧,搭建个本地iis,模拟防火墙进行渗透测试。网上的网站不建议练手,涉及诸多法律问题,靶机玩坏了重搭建就是。我学的时候没有关注过owasp,有什么洞整什么,把知识体系补完就成,一个字还是刚。


问:xss拿到的cookie该怎么利用?

答: cookie就是凭证,最简单的利用就是替换登陆请求的cookie就算利用了。

参考资料


下一篇会整理下CSRF攻击与防御 相关的知识和资料。

See you next good day~

谢谢你的阅读,如果您觉得这篇博文对你有帮助,请点赞或者喜欢,让更多的人看到!祝你每天开心愉快!



Java编程技术乐园:分享干货技术,每天进步一点点,小的积累,带来大的改变!


扫描关注,后台回复【秘籍】,获取珍藏干货! 99.9%的伙伴都很喜欢

image.png | center| 747x519

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/120967.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • web安全色_WEB标准颜色

    web安全色_WEB标准颜色web安全色产生的原因不同的平台(Mac、PC等)有不同的调色板,不同的浏览器也有自己的调色板。这就意味着对于一幅图,显示在Mac上的Web浏览器中的图像,与它在PC上相同浏览器中显示的效果可能差别很

  • java进程间通信的方式_关闭所有java进程

    java进程间通信的方式_关闭所有java进程进程间通信又称IPC(Inter-ProcessCommunication),指多个进程之间相互通信,交换信息的方法。根据进程通信时信息量大小的不同,可以将进程通信划分为两大类型:1、低级通信,控制信息的通信(主要用于进程之间的同步,互斥,终止和挂起等等控制信息的传递)。2、高级通信,大批数据信息的通信(主要用于进程间数据块数据的交换和共享,常见的高级通信有管道,消息队列,共享内存等)。进程间…

    2022年10月11日
  • Proxmark3教程1:用PM3解密复制M1全加密门禁IC卡图文详细介绍

    Proxmark3教程1:用PM3解密复制M1全加密门禁IC卡图文详细介绍IC卡已经在我们的生活中无处不在了,门禁,电梯,吃饭,洗车,可以说与我们的生活息息相关了。但是如果有一天,你的门禁卡丢了,怎么配呢?跟配钥匙一样的,必须现有原钥匙才可以。那我们今天就看看,如何用PM3来配门禁卡钥匙。准备好门禁母卡和复制的空白卡,复制的全过程是这样的。放原卡-》读卡-》激活成功教程密码-》读出数据-》放新卡-》写入数据-》完成复制!1、连接好PM3硬件设备,运行我们的杀…

  • spring源码系列(二)——毁三观的spring自动注入

    spring源码系列(二)——毁三观的spring自动注入比如提到spring的自动注入作为一个java程序员肯定自信无比了解;但是笔者要说的自动注入可能会和你理解有很大出入。首先搞明白什么是自动注入,自动注入也可以叫做自动装配(springboot也有一个自动装配但是我认为翻译的不够准确,springboot的应该叫做自动配置和这里说的自动注入是两回事,笔者不是什么大牛或者权威;所以读者如果你坚持认为springboot也叫自动装配那也无可厚非,只…

    2022年10月31日
  • Hashing

    Hashing

  • linux添加用户及用户权限管理命令_docker用户权限

    linux添加用户及用户权限管理命令_docker用户权限Linux添加用户及用户权限管理1.新建用户(组)①用户新建用户需要通过指令useradd来实现。useradd的一些基本用法如下:useraddusername 新建一个用户useradd-uuidusername 指定用户的uiduseradd-ggidusername 指定用户的gid(一定要存在)useradd-Ggiduseradd指定用户的附加组(…

    2022年10月24日

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号