热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

始终把注意力,花在值得积累的事情上。开头扯几句1、不好意思,因为一些事情和个人原因告别了一段时间,没有更新公众号内容。感谢还一直默默关注的

始终把注意力,花在值得积累的事情上。

开头扯几句

1、不好意思, 因为一些事情和个人原因告别了一段时间,没有更新公众号内容。感谢还一直默默关注的你,后续会努力更新,这里是我自己的一个小天地,可能没有特别高大上和牛逼的东西,但是会分享我觉得对我有帮助的内容,或者是我整理的一些资料,希望大家能够在这里有所收获。
2、如果要学习技术,个人建议不要花费太多时间去看公众号,公众号内容碎片化的阅读对成长是微乎其微的。公众号可以作为一个工具,碎片化时间浏览下,获取一些资料或者感兴趣的技术。3、再次感谢一直默默陪伴、关注我的人,谢谢

本文来自工作的一个知识资料整理,收集网上的一些资料(我觉得还不错的内容),如果你对XSS还不了解或者了解但不知道原理的话,建议阅读一下,最好把参考的资料也阅读一下,因为公众号内不能打开链接,可以点击 阅读原文 查看。

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

主要的攻击是在HTML中加入了Javascript脚本&#xff0c;这个脚本可能会写一些发起攻击的代码。

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

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

注&#xff1a;评论内容摘要

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

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

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

  • 来自用户的 UGC 信息

  • 来自第三方的链接

  • URL 参数

  • POST 参数

  • Referer &#xff08;可能来自不可信的来源&#xff09;

  • COOKIE &#xff08;可能来自其他子域注入&#xff09;

XSS 分类

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

类型存储区插入点
存储型XSS后端数据库HTML
反射型 XSSURLHTML
DOM 型 XSS后端数据库/前端存储/URL前端 Javascript
  • 存储区&#xff1a;恶意代码存放的位置。

  • 插入点&#xff1a;由谁取得恶意代码&#xff0c;并插入到网页上。

具体参看&#xff1a;前端安全系列&#xff08;一&#xff09;

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

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

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

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

XSS 防御总结

XSS 攻击有两大要素&#xff1a;

  1. 攻击者提交恶意代码。

  • 后台处理&#xff0c;转义可能存在的掉html标签。但是在转义的时候可能出现 将 大于> 、小于 <转义&#xff0c;可能出现错误的转义。要根据实际的业务做相应的调整。如需要保存&#xff1a;2>7 ,则会转义为&#xff1a;2>7

  1. 浏览器执行恶意代码。

前端处理&#xff0c;有一些前端框架已经默认做xss相应的处理。

后端和前端一起协作&#xff0c;终可防御xss攻击。截图内容来源&#xff1a;前端安全系列&#xff08;一&#xff09;

XSS 问答

来源&#xff1a;https://gitbook.cn/books/5a26a88d5d69d22a8f0adc5f/index.html

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


问&#xff1a;xss窃取的COOKIE怎么防止被利用&#xff1f;**答&#xff1a;**窃取的COOKIE防止利用可以增加一个时效性或者绑定用户。


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


问&#xff1a;预防xss攻击有什么迅速的有效手段吗&#xff1f;

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


问&#xff1a;xss过滤字符问题怎么办&#xff1f;

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


问&#xff1a;xss有书籍推荐吗&#xff1f;

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


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

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


问&#xff1a;xss拿到的COOKIE该怎么利用&#xff1f;

答&#xff1a; COOKIE就是凭证&#xff0c;最简单的利用就是替换登陆请求的COOKIE就算利用了。


推荐阅读
  • Oracle优化新常态的五大禁止及其性能隐患
    本文介绍了Oracle优化新常态中的五大禁止措施,包括禁止外键、禁止视图、禁止触发器、禁止存储过程和禁止JOB,并分析了这些禁止措施可能带来的性能隐患。文章还讨论了这些禁止措施在C/S架构和B/S架构中的不同应用情况,并提出了解决方案。 ... [详细]
  • 本文详细介绍了SQL日志收缩的方法,包括截断日志和删除不需要的旧日志记录。通过备份日志和使用DBCC SHRINKFILE命令可以实现日志的收缩。同时,还介绍了截断日志的原理和注意事项,包括不能截断事务日志的活动部分和MinLSN的确定方法。通过本文的方法,可以有效减小逻辑日志的大小,提高数据库的性能。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • javascript  – 概述在Firefox上无法正常工作
    我试图提出一些自定义大纲,以达到一些Web可访问性建议.但我不能用Firefox制作.这就是它在Chrome上的外观:而那个图标实际上是一个锚点.在Firefox上,它只概述了整个 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • 本文介绍了高校天文共享平台的开发过程中的思考和规划。该平台旨在为高校学生提供天象预报、科普知识、观测活动、图片分享等功能。文章分析了项目的技术栈选择、网站前端布局、业务流程、数据库结构等方面,并总结了项目存在的问题,如前后端未分离、代码混乱等。作者表示希望通过记录和规划,能够理清思路,进一步完善该平台。 ... [详细]
  • 本文详细介绍了cisco路由器IOS损坏时的恢复方法,包括进入ROMMON模式、设置IP地址、子网掩码、默认网关以及使用TFTP服务器传输IOS文件的步骤。 ... [详细]
  • 从Oracle安全移植到国产达梦数据库的DBA实践与攻略
    随着我国对信息安全和自主可控技术的重视,国产数据库在党政机关、军队和大型央企等行业中得到了快速应用。本文介绍了如何降低从Oracle到国产达梦数据库的技术门槛,保障用户现有业务系统投资。具体包括分析待移植系统、确定移植对象、数据迁移、PL/SQL移植、校验移植结果以及应用系统的测试和优化等步骤。同时提供了移植攻略,包括待移植系统分析和准备移植环境的方法。通过本文的实践与攻略,DBA可以更好地完成Oracle安全移植到国产达梦数据库的工作。 ... [详细]
  • 本文讨论了在VMWARE5.1的虚拟服务器Windows Server 2008R2上安装oracle 10g客户端时出现的问题,并提供了解决方法。错误日志显示了异常访问违例,通过分析日志中的问题帧,找到了解决问题的线索。文章详细介绍了解决方法,帮助读者顺利安装oracle 10g客户端。 ... [详细]
  • Android实战——jsoup实现网络爬虫,糗事百科项目的起步
    本文介绍了Android实战中使用jsoup实现网络爬虫的方法,以糗事百科项目为例。对于初学者来说,数据源的缺乏是做项目的最大烦恼之一。本文讲述了如何使用网络爬虫获取数据,并以糗事百科作为练手项目。同时,提到了使用jsoup需要结合前端基础知识,以及如果学过JS的话可以更轻松地使用该框架。 ... [详细]
  • 背景应用安全领域,各类攻击长久以来都危害着互联网上的应用,在web应用安全风险中,各类注入、跨站等攻击仍然占据着较前的位置。WAF(Web应用防火墙)正是为防御和阻断这类攻击而存在 ... [详细]
  • 单页面应用 VS 多页面应用的区别和适用场景
    本文主要介绍了单页面应用(SPA)和多页面应用(MPA)的区别和适用场景。单页面应用只有一个主页面,所有内容都包含在主页面中,页面切换快但需要做相关的调优;多页面应用有多个独立的页面,每个页面都要加载相关资源,页面切换慢但适用于对SEO要求较高的应用。文章还提到了两者在资源加载、过渡动画、路由模式和数据传递方面的差异。 ... [详细]
  • 本文介绍了一个React Native新手在尝试将数据发布到服务器时遇到的问题,以及他的React Native代码和服务器端代码。他使用fetch方法将数据发送到服务器,但无法在服务器端读取/获取发布的数据。 ... [详细]
  • 使用eclipse创建一个Java项目的步骤
    本文介绍了使用eclipse创建一个Java项目的步骤,包括启动eclipse、选择New Project命令、在对话框中输入项目名称等。同时还介绍了Java Settings对话框中的一些选项,以及如何修改Java程序的输出目录。 ... [详细]
author-avatar
手机用户2502887415
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有