web中的幽灵

简介: Web漏洞哪家强?跨站脚本(简称XSS)即使排不上第一,也肯定进前三。自1996年XSS被发现以来,一直稳坐OWASP(Open Web Application Security Project)评出的十大网络安全漏洞第二位。2011年六月份,新浪爆发了大规模的XSS蠕虫攻击,下面这张图是我在百度上截的

Web中的幽灵


——跨站脚本简述  


Web漏洞哪家强?跨站脚本(简称XSS)即使排不上第一,也肯定进前三。自1996年XSS被发现以来,一直稳坐OWASP(Open Web Application Security Project)评出的十大网络安全漏洞第二位。


2011年六月份,新浪爆发了大规模的XSS蠕虫攻击,下面这张图是我在百度上截的

109.png


跨站脚本(Cross Site Scripting)本质上讲就是一个脚本,一段恶意的代码,是在Web应用程序中常见的漏洞。


之所以会产生XSS,最重要的原因就是Web浏览器本身的设计就是不安全的。它对于用户的输入只会执行,不会判断用户的输入是否有害。


其次,普通的程序员大多没有接受过专门的安全培训,一个大项目做下来,不同的人写的代码风格,水平都不一样,产生的漏洞千奇百怪。即使他们发现了漏洞,但是作为非专业的安全人员往往在修复的过程又引入了新的漏洞。这就导致洞越补越烂。


还有一个重要原因就是触发跨站脚本非常简单,而对于它的防御往往又只能依靠程序员的经验来对用户的输入来进行“过滤”和“消毒”。


下面我来展示一下这有多简单。


首先声明一下,对于真实存在的网站,如果你没有系统地学习过网络渗透测试的话,不要轻易地去尝试去给人家注入跨站脚本。因为对于初入门的菜鸟来说,你掌握的那些手法都是老掉牙的了,基本对于成熟的网站不会产生任何的作用,这样就没有起到学习的作用。但是,万一你碰到了那些非常非常弱智的网站,连字符都不过滤一下,你很有可能对别人的服务器产生非常坏的影响。出现这种情况,我只能说后果自负。


要想练手,最好还是先找一个靶机来在自己的电脑上进行模拟练习。Metasploitable2应该说是一个比较好的用来练手的虚拟机镜像。它集成了很多的漏洞,其中就有Web服务器和应用方面的安全漏洞,你可以在它的官网上去下载它的镜像,然后在虚拟机上运行。下载地址是:https://sourceforge.net/projects/metasploitable/

0.png

点击download就行了。


打开虚拟机,输入ifconfig查看一下它ip,然后在你的浏览器里输入这个ip,像这样:


1.png


在你的浏览器中输入这个ip就看以打开Metasploitable2的网页。

2.png


点击Mutillidae,然后点击OWASP TOP10,选择XSS,然后以USR INFO为例。


3.jpg

因为不是真实存在的网站,你正常输入的话,它的返回总是错误,但是如果你输入这个:

<script>location='https://www.baidu.com'</script>

4.jpg


网页跳转到了百度上。

5.png


呵呵,是不是很神奇。这是一段JavaScript的代码,它的作用就是用来跳转网页的,有一点Web基础的人都能看懂。因为Metasploitable2是用来练手的,所以没有对字符进行过滤,你的任何输入它都会执行。


如果你要想对这串代码进行过滤,那么你可以过滤掉一些敏感字符,但是html中属性值是支持ASCII码的,我可以把字母替换成其对应的ASCII码,同样可以执行。比如bASCII码值是98,所以我可以这么改:

<script>location='https://www.&#98aidu.com'<script>

然后就可以成功绕过了。


如果我填的不是百度的链接,而是一个钓鱼网站的链接,那用户轻轻松松就嗝屁了。


总之,绕过的方法很多。国外著名安全工程师Rsnake在其个人主页列出了一份常见的XSS攻击列表。如果你有兴趣的话可以上网搜一波XSS Cheat Sheet,由于篇幅限制,在这里我就不展示了。


要想彻底防御XSS,从目前的技术来看基本不可能,我个人认为最有效的办法就是,从不断的攻防中吸取经验教训,制定较为严密的过滤策略,以及Web安全编码规范。


从用户层面来讲,如果你常用的网站被攻陷了,你肯定是跑不了的,但是从目前来看,比较大的,成熟的网站还是相对来说比较安全的。所以,尽量少去浏览一些不知名的小网站,更不要在上面输入你的任何的账户名及密码。


在安全领域有一条黄金法则:“一切输入都是有害的”。但是为了业务需要,不可能将用户的输入全都屏蔽掉。当你在使用服务时就要承担相应的风险,在网络的世界里永远没有绝对的安全。

本文作者:Mr Six

声明:本文为 脚本之家专栏作者 投稿,未经允许请勿转载。

相关文章
|
21天前
|
搜索推荐 UED
[译] 世界比以往任何时候都更需要 Web 可访问性
[译] 世界比以往任何时候都更需要 Web 可访问性
|
1月前
|
开发框架 前端开发 JavaScript
C/S、B/S、Web的介绍(Web应用开发)
这篇文章介绍了C/S(客户端/服务器)和B/S(浏览器/服务器)两种架构,以及Web应用开发的基本原理、客户端和服务器端的应用技术。
C/S、B/S、Web的介绍(Web应用开发)
|
19天前
|
测试技术 Java
揭秘Struts 2测试的秘密:如何打造无懈可击的Web应用?
【8月更文挑战第31天】在软件开发中,确保代码质量的关键在于全面测试。对于基于Struts 2框架的应用,结合单元测试与集成测试是一种有效的策略。单元测试聚焦于独立组件的功能验证,如Action类的执行逻辑;而集成测试则关注组件间的交互,确保框架各部分协同工作。使用JUnit进行单元测试,可通过简单示例验证Action类的返回值;利用Struts 2 Testing插件进行集成测试,则可模拟HTTP请求,确保Action方法正确处理请求并返回预期结果。这种结合测试的方法不仅提高了代码质量和可靠性,还保证了系统各部分按需协作。
9 0
|
人工智能 监控 安全
|
Web App开发 前端开发 JavaScript
认识Web和Web标准
《前端基础》
207 0
|
前端开发 JavaScript
谈一谈Web中的事件
谈一谈Web中的事件
101 0
谈一谈Web中的事件
|
存储 前端开发
WEB核心【会话技术】第十五章
本文详细介绍Web知识中的Session和cookie技术
WEB核心【会话技术】第十五章
|
存储 机器学习/深度学习 人工智能
简谈什么是 Web 3.0
本文将简单介绍什么是Web 3.0,现在火热的 NFT、元宇宙(metaverse)不能称之为Web 3.0,所谓的Web 3.0是一系列协议和集成平台……它们使这些应用程序、服务和货币成为可能。
879 0
简谈什么是 Web 3.0
|
存储 区块链 数据安全/隐私保护
Web 3.0 只是高成本版的 P2P 而已
最近,Web 3.0 火的不行,有人认为,它将是互联网的未来式, Web 3.0 代表着对互联网的根本性改造,一个新的 Web 世界或将到来。有人质疑,Web 3.0 只不过是又一个击鼓传花式的诈骗游戏,只会帮有钱人再收割一波韭菜…
305 0