xss攻击类型与nginx预防配置

XSS攻击类型

参考来源: https://baike.baidu.com/item/XSS%E6%94%BB%E5%87%BB/954065 参考来源: https://blog.csdn.net/qq_44857938/article/details/118034947

XSS简介

人们经常将跨站脚本攻击(Cross Site Scripting)缩写为CSS,但这会与层叠样式表(Cascading Style Sheets,CSS)的缩写混淆。因此,有人将跨站脚本攻击缩写为XSS。

跨站脚本攻击(XSS),是最普遍的Web应用安全漏洞。这类漏洞能够使得攻击者嵌入恶意脚本代码到正常用户会访问到的页面中,当正常用户访问该页面时,则可导致嵌入的恶意脚本代码的执行,从而达到恶意攻击用户的目的。

攻击者可以使用户在浏览器中执行其预定义的恶意脚本,其导致的危害可想而知,如劫持用户会话,插入恶意内容、重定向用户、使用恶意软件劫持用户浏览器、繁殖XSS蠕虫,甚至破坏网站、修改路由器配置信息等。

XSS漏洞可以追溯到上世纪90年代。大量的网站曾遭受XSS漏洞攻击或被发现此类漏洞,如Twitter、Facebook、MySpace、Orkut、新浪微博和百度贴吧。研究表明,最近几年XSS已经超过缓冲区溢出成为最流行的攻击方式,有68%的网站可能遭受此类攻击。根据开放网页应用安全计划(Open Web Application Security Project)公布的2010年统计数据,在Web安全威胁前10位中,XSS排名第2,仅次于代码注入(Injection)。

XSS经常出现在web应用中的计算机大全漏洞,也是web中最主流的攻击方式。XSS是指恶意攻击者利用网站对用户提交的数据进行转义处理或者过滤不足的缺点,进而添加一些代码,嵌入到web页面中去。使别的用户访问都会执行相应的嵌入代码。从而盗取用户资料、利用用户身份进行某种动作或者访问者进行病毒侵害。

XSS攻击特点

与钓鱼攻击相比,XSS攻击所带来的危害更大,通常具有如下特点:

①由于XSS攻击在用户当前使用的应用程序中执行,用户将会看到与其有关的个性化信息,如账户信息或“欢迎回来”消息,克隆的Web站点不会显示个性化信息。

②通常,在钓鱼攻击中使用的克隆Web站点一经发现,就会立即被关闭。

③许多浏览器与安全防护软件产品都内置钓鱼攻击过滤器,可阻止用户访问恶意的克隆站点。

④如果客户访问一个克隆的Web网银站点,银行一般不承担责任。但是,如果攻击者通过银行应用程序中的XSS漏洞攻击了银行客户,则银行将不能简单地推卸责任

XSS攻击方式

常用的XSS攻击手段和目的有:

1、盗用cookie,获取敏感信息。

2、利用植入Flash,通过crossdomain权限设置进一步获取更高权限;或者利用Java等得到类似的操作。

3、利用iframe、frame、XMLHttpRequest或上述Flash等方式,以(被攻击)用户的身份执行一些管理动作,或执行一些一般的如发微博、加好友、发私信等操作。

4、利用可被攻击的域受到其他域信任的特点,以受信任来源的身份请求一些平时不允许的操作,如进行不当的投票活动。

5、在访问量极大的一些页面上的XSS可以攻击一些小型网站,实现DDoS攻击的效果。

XSS的危害

  • 针对用户
    • 窃取cookie劫持的会话
    • 网络钓鱼
    • 放马挖矿
    • 广告刷流量
  • 针对web服务
    • 劫持后台(常见)
    • 篡改页面
    • 传播蠕虫
    • 内网扫描(常见)

XSS攻击类型

从攻击代码的工作方式可以分为三个类型:

(1)存储型:最直接的危害类型,跨站代码存储在服务器(数据库)。攻击者将已经构造完成的恶意页面发送给用户(比如嵌入了恶意代码的博客,评论等),用户访问看似正常的页面后收到攻击,这类XSS通常无法直接在URL中看到恶意代码,具有较强的持久性和隐蔽性。

(2)反射型:反射型跨站脚本漏洞,最普遍的类型。用户访问服务器-跨站链接-返回跨站代码。主要用于将恶意的脚本附加到URL地址的参数中。

(3)DOM跨站(DOM XSS):DOM(document object model文档对象模型),客户端脚本处理逻辑导致的安全问题。无需和后端交互,而是基于JavaScript上,JS解析URL中恶意参数导致执行JS代码

基于DOM的XSS漏洞是指受害者端的网页脚本在修改本地页面DOM环境时未进行合理的处置,而使得攻击脚本被执行。在整个攻击过程中,服务器响应的页面并没有发生变化,引起客户端脚本执行结果差异的原因是对本地DOM的恶意篡改利用。

Content-Security-Policy网页安全策略

CSP 的实质就是白名单制度,开发者明确告诉客户端,哪些外部资源可以加载和执行,等同于提供白名单。它的实现和执行全部由浏览器完成,开发者只需提供配置。

CSP 大大增强了网页的安全性。攻击者即使发现了漏洞,也没法注入脚本,除非还控制了一台列入了白名单的可信主机。

两种方法可以启用 CSP。

一种是通过 HTTP 头信息的Content-Security-Policy的字段。

Content-Security-Policy: script-src 'self'; object-src 'none';
style-src cdn.example.org third-party.org; child-src https:

另一种是通过网页的<meta>标签。

<meta http-equiv="Content-Security-Policy" content="script-src 'self'; object-src 'none'; style-src cdn.example.org third-party.org; child-src https:">

X-Frame-Options预防点击劫持

转载来源: https://www.cnblogs.com/zccst/p/8000486.html

X-Frame-Options是一个HTTP标头(header),用来告诉浏览器这个网页是否可以放在iFrame内。例如:

X-Frame-Options: DENY
X-Frame-Options: SAMEORIGIN
X-Frame-Options: ALLOW-FROM http://caibaojian.com/

X-Frame-Options 有三个值:

DENY

表示该页面不允许在 frame 中展示,即便是在相同域名的页面中嵌套也不允许。 (X-Frame-Options: DENY) 告诉浏览器不要把这个网页放在iFrame内,通常的目的就是要帮助用户对抗点击劫持。

SAMEORIGIN

表示该页面可以在相同域名页面的 frame 中展示。 (X-Frame-Options: SAMEORIGIN) 告诉浏览器只有当架设iFrame的网站与发出X-Frame-Options的网站相同,才能显示发出X-Frame-Options网页的内容。

ALLOW-FROM uri

表示该页面可以在指定来源的 frame 中展示。 (X-Frame-Options: ALLOW-FROM http://caibaojian.com/) 告诉浏览器这个网页只能放在http://caibaojian.com//网页架设的iFrame内。

不指定X-Frame-Options的网页等同表示它可以放在任何iFrame内。

X-Frame-Options可以保障你的网页不会被放在恶意网站设定的iFrame内,令用户成为点击劫持的受害人。

换一句话说,如果设置为 DENY,不光在别人的网站 frame 嵌入时会无法加载,在同域名页面中同样会无法加载。另一方面,如果设置为SAMEORIGIN,那么页面就可以在同域名页面的 frame 中嵌套。

另外查了最新的资料,还可以直接通过meta标签来设置,不需要放在http头部请求中了。 <meta http-equiv="X-Frame-Options" content="deny"> 两个参数:(作用与上面一致)

  1. SAMEORIGIN
  2. DENY

nginx预防攻击配置

配置X-Frame-Options预防点击劫持

#X-Frame-Options是一个HTTP标头(header),用来告诉浏览器这个网页是否可以放在iFrame内。(允许的配置: ALLOWALL/SAMEORIGIN/ALLOW-FROM uri/DENY)
#X-Frame-Options可以保障网页不会被放在恶意网站设定的iFrame内,令用户成为点击劫持的受害人。
#这里配置SAMEORIGIN,告诉浏览器只有当架设iFrame的网站与发出X-Frame-Options的网站相同,才能显示发出X-Frame-Options网页的内容。如a.test.com和b.test.com。
add_header X-Frame-Options SAMEORIGIN;

配置

https://blog.csdn.net/weixin_41986096/article/details/108319848


评论

发表回复

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