首页 > 其他分享 >XSS漏洞

XSS漏洞

时间:2022-08-31 18:01:10浏览次数:59  
标签:XSS 引号 转义 漏洞 HTML 字符串 属性

(备注:以下为个人学习笔记)

一、什么是XSS

  答:XSS(cross site script)或者说跨站脚本是一种Web应用程序的漏洞, 恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之 时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击 用户的目的。通俗的讲,就是在web页面上插入了一段脚本,这个脚本会执行一些非正常的操作。

二、XSS漏洞风险

  答:1、盗取用户cookie,然后伪造用户身份登录,泄漏用户个人身份及用 户订单信息,

    2、操控用户浏览器,借助其他漏洞可能导致对https加密信息的破解, 导致登录传输存在安全风险。       3、结合浏览器及其插件漏洞,下载病毒木马到浏览者的计算机上执行。     4、修改页面内容,产生钓鱼攻击效果,例如伪造登录框获取用户明文 帐号密码。 三、XSS漏洞类型   答:存储型XSS,反射型XSS,DOM式XSS   (一)、存储型XSS,通俗讲就是存在服务器上的xss。是用户输入的一些信息,没有被验证,就存储到服务器上,同时该数据被获取时没有被编码或者转义直接反馈到响应文中。影响主要有,盗取cookie;重定向到钓鱼页面;重新更改页面内容,假装让客户输入用户名,密码,然后提交到黑客的服 务器;生成蠕虫。           检测方式:1、在任何可以插入的地方<script>  alert ('1')</script>插入这些后会弹窗出现1,这就证明存在xss漏洞;           2、第一种方法受挫后,黑客可能尝试利用img标签。<img src =javascript:alert("1")"></img>    <img dynsrc=javascript:alert('1')"></img>结果还是1,证明还是存在xss漏洞。           3、除img标签之外还有div标签也可以利用,同样是图片载入,DIV STYLE= "background-image: url(javascript:alert('1'))"> ,
          4、利用insertAjacentHTML即使这种方式被防住,我们也可以使用自行构造事件 <font style= "TEST:expression(alert('1'));">;除了font, 还有table,a,ul等标签也可以利用     如何防范:1、第一是对用户输入的特殊字符进行转译,对HTML中不可信字符串进行HTML转义(&-->&amp;<--->&lt;>----&gt;"--&quot;`----&#x60;'------->&#x27;空-------&#2F;)不要使用反引号(`)。除了字母数字字符,用格式(或者命名实体,如果可用)转义所有ASCII值小于256的字符以防止开关的值伸出属性。恰当的为属性加上引号可以只被对应的引号转义。不带引号的属性可以被分解为许多个字符,包括和。。          2、对于事件触发属性中的不可信字符串,先进行JavaScript转义,然 后执行HTML转义,因为浏览器在执行JavaScript字符串解码前执 行HTML属性解码。对于JavaScript中的非可信数据,进行 JavaScript字符串转义并且总是将属性加上引号,无论是( ‘ 或“ ), 但不要使用反引号( ` )。          3、对HTML属性中的URL路径进行转义而不是完整的URL。总是为属 性加上引号,无论是(‘ 或“ ),但不要使用反引号( ` )。绝不允许 或包含格式像或或者他们的组合(如)。          4、对HTML样式属性内的不可信字符串先做CSS字符串转义,然后进行HTML转 义,因为解析器的解析顺序是先HTML解析器然后再CSS解析器。总是给你的 属性加上引号,如本例子中的风格属性加上( “ ) ,CSS字符串加上( ‘ ) ,不 要使用反引号( ` )。为在CSS中的不可信字符串做CSS字符串转义。也要确保 不可信字符串在引号( ‘ 或“ ) 之间,不要使用反引号( ` )。也不要允许 expression以及它的复杂组合,如(expre/**/ssion)。           5、对于JavaScript字符串中不可信的HTML,先执行HTML转义,然 后执行JavaScript字符串转义,保持这个顺序。          6、创建个Web应用程序应该允许的来自用户的标签和属性的白名单。 黑名单可以很容易的被绕过。          7、使用UTF-8为默认的字符编码以及设置content为text/html 。          8、不要将用户可以控制的文本放在标签前。通过使用不同的 字符集注射可以导致XSS。            9、使用告诉你的浏览器遵循标准进行HTML, CSS的渲染以及如何执行。     (二)、反射式XSS:反射式XSS一般是提交信息的一部分内容通过服务器解析后反馈到 浏览器,而不存储到服务器。反射型的一般是在URL请求里面构造的恶意语句,在url中插入了一段代码,http://mydvwa.com/dvwa/vulnerabilities/xss_r/?name=a%3Cscript% 3Ealert%281%29%3C%2Fscript%3E。     (三)、DOM式XSS:不存服务器,不需要服务器解析,利用js代码中提取了url地址中的部分内容。完全是利用JS代码来获取URL地址中信息,此类信息可以利用检测JS代码来避免。可以通过检测一下信息来检查是否存在DOM型xss(document.location ,document.URL,document.referrer )。可以通过以下方式来修复:写入页面前先转义,慎用危险的“eval” ,编写安全的函数方法,从看似“可靠”的数据源获取参数值,参考/使用filter.js库 。

标签:XSS,引号,转义,漏洞,HTML,字符串,属性
From: https://www.cnblogs.com/zwj611/p/16643087.html

相关文章

  • fastjson漏洞利用学习
    FastJson漏洞利用学习前置知识了解Fastjson反序列化漏洞我们还需要一些前置知识。好比如什么是JNDI,JNDI注入?JNDI简介JNDI(JavaNamingandDirectoryInterface,Java命......
  • 使用dependency-check-maven对项目进行漏洞检查
    最近,公司安排对所开发项目进行漏洞检查,使用的就是开源扫描工具OWASPDependency-Check。使用方式有多种,鉴于项目是用maven进行管理的,我使用的是maven插件的方式,使用方式很......
  • 220829-漏洞分类再深入
    本篇文章针对漏洞分类问题进行深入的理解和分析。在《网络安全漏洞分类分级指南》(GB/T30279-2020)中,对漏洞分了4大类。第一类代码问题简单来说,就是程序员在写代码的时......
  • 渗透测试 vs 漏洞扫描:差异与不同
    渗透测试和漏洞扫描常常被混淆,这两者都通过探索系统来寻找IT基础架构中的弱点及易受攻击的地方。阅读本文,带你了解两者之间的差异与不同。手动vs自动渗透测试是一种......
  • CVE-2017-7921 海康威视(Hikvision)摄像头漏洞复现
    今天看到了海康威视又出了新漏洞——CVE-2021-36260,突然心血来潮想要复现一下,结果搜到了一个旧的漏洞——CVE-2017-7921,而且发现仍然有不少海康威视摄像头后台没有修补这个......
  • 文件包含漏洞
    文件包含漏洞漏洞原理服务器执行PHP文件时,可以通过文件包含函数加载另一个文件中的PHP代码,并且当PHP来执行。但如果文件包含函数加载的参数没有经过过滤或者严格的定义,可......
  • 文件上传漏洞
    文件上传文件上传漏洞是指文件上传功能没有对上传的文件做合理严谨的过滤,导致用户可以利用此功能,上传能被服务端解析执行的文件,并通过此文件获得执行服务端命令的能力。......
  • Windows RDP的RCE漏洞分析和复现(CVE-2019-0708)
    0x00漏洞描述Windows系列服务器于2019年5月15号,被爆出高危漏洞,该漏洞影响范围较广如:windows2003、windows2008、windows2008R2、windowsxp系统都会遭到攻击,该服务器漏......
  • 【Scan kit】Sechunter针对统一扫码SDK扫出漏洞该如何解决?
    ​1、问题描述项目中集成了华为统一扫码服务SDK,在做送检的准备工作时,针对apk进行了一系列的漏洞扫描处理,其中统一扫码服务SDK在扫描结果中呈现出了少许的漏洞,需要SDK团队......
  • goahead环境变量注入漏洞分析
    一、前言1.1下载地址二、CVE-2017-175622.1漏洞分析cve-2017-17562远程命令执行漏洞影响Goahead2.5.0到Goahead3.6.5之间的版本。在cgiHandler函数中,将用户的HTTP......