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

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 用于安装python第三方库的工具是_Python第三方库安装

    用于安装python第三方库的工具是_Python第三方库安装Python 有一个全球社区 在这里 我们可以搜索 Python 第三方库的任何话题 PyPI 的全称是 Python 包指数指 Python 包的指数 它是由 PSF Python 软件基金会 和显示全球 Python 计算生态系统 我们需要学会使用 PyPI 的主要网站 搜索和发现我们使用第三方 Python 库和关心 例如 如果您正在开发一个 blockchain related 程序 您需要使用 Python 的计算生态三个步

    2025年7月3日
    1
  • 线上问题:线程池拒绝策略「建议收藏」

    线上问题:线程池拒绝策略「建议收藏」1场景复现服务调用时序如图1所示。中间件服务使用线程池ThreadPoolExecutor,配置丢弃策略为DiscardOldestPolicy(丢弃队列中等待最久的任务),队列容量为10。图1服务调用publicstaticExecutorServicethreadPoolExecutorGenerate=newThreadPoolExecutor(ThreadPoolConstant.CORE_THREAD_NUM,Thread

    2022年6月28日
    26
  • pidstat_pidstat「建议收藏」

    pidstat_pidstat「建议收藏」性能监控,pidstat就够了!安装:yuminstall-ysysstat常用参数:-u:默认的参数,显示各个进程的cpu使用统计-r:显示各个进程的内存使用统计-d:显示各个进程的IO使用情况-p:指定进程号-w:显示每个进程的上下文切换情况-t:显示选择任务的线程的统计信息外的额外信息-T{TASK|CHILD|ALL}这个选项指定了pidstat监控的。TASK表示报告…

    2022年10月22日
    0
  • linux RWX权限的解读

    linux RWX权限的解读Linux的权限不是很细致,只有RWX三种r(Read,读取):对文件而言,具有读取文件内容的权限;对目录来说,具有浏览目录的权限。w(Write,写入):对文件而言,具有新增,修改,删除文件内容的权限;对目录来说,具有新建,删除,修改,移动目录内文件的权限。x(eXecute,执行):对文件而言,具有执行文件的权限;对目录了来说该用户具有进入目录的权限。1、目录的只读访问不允许使

    2022年6月12日
    39
  • 页面浮动广告举例_html向下浮动代码

    页面浮动广告举例_html向下浮动代码今天做网页两侧浮动广告图片,用js代码是实现,下面是一个*.js文件,在需要用到的网页加一句代码language=”javascript”src=”*.js”>即可使用,我可弄好的,分享给有需要朋友。leftcode1=”href=’http://www.dizhu88.com/’target=’_blank’>src=’http://www.dizhu88.com/images/xibao…

    2022年9月16日
    0
  • 学习笔记 – EasyUI官方网站演示[通俗易懂]

    学习笔记 – EasyUI官方网站演示[通俗易懂]EasyUI官方网站演示撰写:2016/03/21更新:2016/04/07博客地址:http://www.cnblogs.com/gibbonnet/p/5362801.html演示地址:h

    2022年7月4日
    25

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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