Web-XSS漏洞

XSS是指攻击者利用网站程序对用户输入过滤不足的缺陷,输入可以显示在页面上对其他用户造成影响的HTML代码,从而盗取用户资料、利用用户身份进行某种动作或者对访问者进行病毒侵害的一种攻击方式。
XSS主要影响的是用户端的安全,包含用户信息安全、权限安全等。并且多数XSS都依赖于JavaScript脚本开展。
核心要求是构造出能够让前端执行的JS代码,让攻击者的JS代码在受害者浏览器上执行,攻击系统用户而不是系统本身。
JS运行条件:代码位于< script >标签中、代码位于onClick事件或者其他触发事件中、代码位于超链接的href标签中。

原理

本质上是一种将恶意脚本嵌入到当前网页并执行的攻击方式,通常情况下,黑客通过"HTML注入"行为篡改网页,并插入恶意JS脚本,从而在用户浏览网页的时候控制浏览器的行为。
这种漏洞产生的原因是网站对于用户提交的数据过滤不严格,导致用户提交的数据可以修当前页面或插入了一段脚本。
通俗来说,网站一般具有用户输入参数的功能,如网站留言板、评论区等,攻击者利用其用户身份在输入参数时附带了恶意脚本,在提交服务器后,服务器没有对用户端传入的参数做任何安全过滤。之后服务器会根据业务流程,将恶意脚本存储在数据库或直接回显给用户,在用户浏览含有恶意脚本的页面时,恶意脚本会在用户浏览器上成功执行。
恶意脚本有很多种表现形式,如常见的弹窗、窃取用户Cookie、弹出广告等。

XSS的分类

  1. 反射型XSS:涉及浏览器-服务器交互
  2. 存储型XSS:涉及浏览器-服务器-数据库交互
  3. DOM型XSS:浏览器

反射型XSS

存在反射型XSS漏洞的页面只是将用户输入的数据通过URL的形式直接或为经过完善的安全过滤就在浏览器进行输出,会导致输出的数据中存在可被浏览器执行的代码数据。由于此种类型的跨站代码存在于URL中,因此黑客通常需要通过加密变形或诱骗等方式,将恶意代码的连接发给用户,只有用户触发以后才能攻击成功实施。

存储型XSS

存储型XSS脚本攻击是指Web应用程序将用户输入从信息保存至服务端的数据库或其他文件形式中,网页进行数据查询展示时,会从数据库中获取数据内容,并将数据内容在网页中进行输出展示,只要用户访问具有XSS攻击脚本的网页时,就会触发攻击效果,因此存储型XSS具有较强的稳定性。

DOM型XSS

从效果上来说也算是反射型XSS,但是是由JS的DOM节点变成可以改变HTML代码这个特性形成的XSS攻击,基于DOM型的XSS攻击需要针对JS的DOM代码进行而分析,并根据实际情况进行XSS攻击的利用,但实际应用中由于构造语句有较大的难度,且实现效果比较苛刻,因此较为少见。

利用条件

  1. 入库处理:目标网页有攻击者可控的输入点,输入信息可以在受害者的浏览器中显示,输入具备功能的可执行脚本,或者说防护措施可以通过一定手段绕过。
  2. 出库处理:浏览器将输入解析为脚本,并具备执行该脚本的能力

作为攻击者,如果要利用存储型跨站脚本的攻击,则先需要攻击脚本存储在服务器端,并保证攻击脚本在读取后可

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据提供的引用内容,X-XSS-Protection和X-Content-Type-Options都是用来防范XSS攻击的响应头。其中,X-XSS-Protection可以关闭或启用XSS保护,而X-Content-Type-Options可以防止浏览器将响应内容解释为MIME类型不正确的脚本。下面是Tomcat8如何解决这两个漏洞的方法: 1. 解决X-XSS-Protection漏洞 在Tomcat8中,可以通过修改web.xml文件来添加X-XSS-Protection响应头。具体步骤如下: - 打开Tomcat8的web.xml文件,路径为:$CATALINA_HOME/conf/web.xml。 - 在文件中找到以下代码块: ```xml <filter> <filter-name>httpHeaderSecurity</filter-name> <filter-class>org.apache.catalina.filters.HttpHeaderSecurityFilter</filter-class> </filter> <filter-mapping> <filter-name>httpHeaderSecurity</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> ``` - 在该代码块中添加以下代码: ```xml <init-param> <param-name>xssProtectionEnabled</param-name> <param-value>true</param-value> </init-param> ``` - 保存并关闭文件,重启Tomcat8即可。 2. 解决X-Content-Type-Options漏洞 在Tomcat8中,可以通过修改web.xml文件来添加X-Content-Type-Options响应头。具体步骤如下: - 打开Tomcat8的web.xml文件,路径为:$CATALINA_HOME/conf/web.xml。 - 在文件中找到以下代码块: ```xml <filter> <filter-name>httpHeaderSecurity</filter-name> <filter-class>org.apache.catalina.filters.HttpHeaderSecurityFilter</filter-class> </filter> <filter-mapping> <filter-name>httpHeaderSecurity</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> ``` - 在该代码块中添加以下代码: ```xml <init-param> <param-name>antiClickJackingEnabled</param-name> <param-value>true</param-value> </init-param> <init-param> <param-name>antiClickJackingOption</param-name> <param-value>SAMEORIGIN</param-value> </init-param> ``` - 保存并关闭文件,重启Tomcat8即可。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值