为什么主流网站无法捕获 XSS 漏洞?
二十多年来,跨站脚本(简称 XSS)漏洞一直是主流网站的心头之痛。为什么过了这么久,这些网站还是对此类漏洞束手无策呢?
对于最近 eBay 网站曝出的跨站脚本漏洞,你有什么想法?为什么会出现这样的漏网之鱼?一个如此大规模的网站,不应该具备可靠的网关安全技术以阻止任何情况下的 XSS 攻击么?
即便从上世纪 90 年代开始,跨站脚本漏洞就已经为人们所熟知。时至今日,它仍在贻害为数不少的网站。大多数主流网站,包括谷歌,CNN,PayPal 以及 Facebook,都曾受过 XSS 漏洞的影响。该漏洞也常年出现在 CWE/SANS 前 25 个最危险的编程错误、OWASP 前 10 个最致命的 Web 应用安全风险之类的榜单。
XSS 攻击与大多数应用层攻击(诸如 SQL 注入攻击)不同,因为它攻击的是应用的用户,而非应用本身或应用服务器。这类攻击会往 Web 应用的内容中注入代码,通常是 JavaScript 之类的客户端代码。大多数网站都有许许多多的注入位置,包括搜索框、反馈表格,cookie 以及论坛等。借助 XSS 漏洞,黑客可以窃取数据,控制用户的会话,运行恶意代码,或操纵受害用户浏览器中显示的内容。
像 eBay 这样的网站,几乎完全基于用户产生的内容,通常在用户的项目描述部分包含许多活动内容(Active Content),比如 JavaScript 和 Flash。由于网站必须与用户互动,接收来自用户的输入、返回数据,这意味着,攻击者也可以直接与网站互动,从而穿破传统的外围安全防护。除非所有用户提供的内容都经过严格审查,XSS 攻击代码就有可能注入拍卖清单页面,从而影响每个访问该页面的用户。用户输入的所有内容(表单数据、cookie、邮件、文件、图片等)都应该视为不可信任,需要经历审查,删除其中可能被恶意使用的字符与字符串,才能继续执行脚本或传给数据库。
导致 eBay 这样的大网站持续受到 XSS 攻击的一大原因,是这些网站过于复杂,实时生成的网页常常会包含许多外部站点的内容。这使得测试阶段,枚举用户与应用交互的所有排列组合变得不太现实,继而导致 XSS 漏网之鱼的出现。
话虽如此,eBay 居然没有一套更为严格的代码审查流程(近几周发现了多个 XSS 漏洞),还是有些令人吃惊。用于测试 XSS 漏洞的工具其实很多,它们都能在代码上线之前有效查找漏洞。此外,开发者也可以使用安全控制库(诸如 OWASP 的企业安全 API 或微软的反跨站脚本库),而不需要自己编写验证检查。而且,诸如运行时应用自我保护(RASP)等网关安全技术也有助于检测并防御对 XSS 漏洞的攻击。因此,如此主流的一个大网站(eBay),却没能有效防御如此广为人知的安全漏洞,实在是有些让人失望。
如今,多样化的攻击手段层出不穷,传统安全解决方案越来越难以应对网络安全攻击。OneRASP 实时应用自我保护技术,可以为软件产品提供精准的实时保护,使其免受漏洞所累。想阅读更多技术文章,请访问 [OneAPM 官方技术博客]。
本文转自 OneAPM 官方博客
为什么主流网站无法捕获 XSS 漏洞?的更多相关文章
- 通过代码审计找出网站中的XSS漏洞实战(三)
一.背景 笔者此前录制了一套XSS的视频教程,在漏洞案例一节中讲解手工挖掘.工具挖掘.代码审计三部分内容,准备将内容用文章的形式再次写一此,前两篇已经写完,内容有一些关联性,其中手工XSS挖掘篇地址为 ...
- 通过Web安全工具Burp suite找出网站中的XSS漏洞实战(二)
一.背景 笔者6月份在慕课网录制视频教程XSS跨站漏洞 加强Web安全,里面需要讲到很多实战案例,在漏洞挖掘案例中分为了手工挖掘.工具挖掘.代码审计三部分内容,手工挖掘篇参考地址为快速找出网站中可能存 ...
- 使用Fiddler的X5S插件查找XSS漏洞
OWASP top 10的安全威胁中的CrossSite Scripting(跨站脚本攻击),允许攻击者通过浏览器往网站注入恶意脚本.这种漏洞经常出现在web应用中需要用户输入的地方,如果网站有XSS ...
- 快速找出网站中可能存在的XSS漏洞实践
笔者写了一些XSS漏洞的挖掘过程记录下来,方便自己也方便他人. 一.背景 在本篇文章当中会一permeate生态测试系统为例,笔者此前写过一篇文章当中笔者已经讲解如何安装permeate渗透测试系统, ...
- 快速找出网站中可能存在的XSS漏洞实践(一)
一.背景 笔者最近在慕课录制了一套XSS跨站漏洞 加强Web安全视频教程,课程当中有讲到XSS的挖掘方式,所以在录制课程之前需要做大量实践案例,最近视频已经录制完成,准备将这些XSS漏洞的挖掘过程记录 ...
- Struts网站基于Filter的XSS漏洞修复
下面的代码只支持struts2框架中的xss漏洞 第一步,创建过滤器XssFilter : package com.ulic.ulcif.filter; import java.io.IOExcept ...
- XSS跨站脚本攻击实例讲解,新浪微博XSS漏洞过程分析
2011年6月28日晚,新浪微博遭遇到XSS蠕虫攻击侵袭,在不到一个小时的时间,超过3万微博用户受到该XSS蠕虫的攻击.此事件给严重依赖社交网络的网友们敲响了警钟.在此之前,国内多家著名的SNS网站和 ...
- 利用窗口引用漏洞和XSS漏洞实现浏览器劫持
==Ph4nt0m Security Team== Issue 0x03, Phile #0x05 of 0x07 |=----------------- ...
- 【渗透课程】特别篇-主流网站程序Oday大全以及拿shell思路
版权和内容说明: 这篇文章不是本站编写,是从网络上摘抄的,但是经过了本站的改写优化,并将内容,格式规范化. 本篇说明:这篇文章结合了前辈们前几年一路挖掘出来的主流程序漏洞以及思路, 小编写在前面是想让 ...
随机推荐
- Python 初学(一) 标识符
Python 标识符 在python里,标识符由字母.数字.下划线组成: python中的标识符是区分大小写的: 1)以单下划线开头(_foo)的代表不能直接访问的类属性,需要通过类提供的接口进行访问 ...
- Perl 随机数和随机密码的产生
Perl有着强大的随机数产生函数rand(),下面的代码详细介绍其应用 #!/usr/bin/perl # use strict; use warnings; # 0~1之间 $rando ...
- python解析页面上json字段
一般来说,当我们从一个网页上拿下来数据,就是一个字符串,比如: url_data = urllib2.urlopen(url).readline() 当我们这样得到页面数据,url_data是全部页面 ...
- Python判断是否是数字(无法判断浮点数)(已解决)
s为字符串s.isalnum() 所有字符都是数字或者字母s.isalpha() 所有字符都是字母s.isdigit() 所有字符都是数字s.islower() 所有字符都是小写s.isupper() ...
- Telerik XML 数据源绑定的问题
Telerik GridView 默认的 XElement 数据源的直接绑定,会导致内置的sort, filter ,group等功能无法使用. 原因在于Telerik GridView的那些功能是根 ...
- afddaf
//import javax.swing.*; import javax.swing.JFrame; import javax.swing.JButton; import javax.swing.JL ...
- oracle - redo 损坏或删除处理方法
OS: Oracle Linux Server release 5.7 DB: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - ...
- Android 设计模式
简介 项目开发中发现问题.解决问题这个过程中会出现很多问题,比如重复出现.某个问题的遗留,这些问题的本质就是设计模式.今天记录设计模式的知识点. 内容 在java以及其他的面向对象设计模式中,类与类之 ...
- 各设备如何清理dns缓存
Windows 按下 Windows+R 键,运行 cmd ,在命令提示符运行命令 ipconfig /flushdns OS X 10.10 在[应用程序][实用工具][终端]运行命令 sudo d ...
- [原创]一个纯css实现兼容各种主流移动pc浏览器的时间轴
废话不多说 Demo 高度完全的自适应 中心思想是table 和第二列行高的50%的上下绝对定位竖线 第一次用codepen less完全不能用啊 连node png之类的都是关键词会被去掉... 马 ...