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

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

相关文章
|
3月前
|
Rust 网络协议 应用服务中间件
granian:让你的 Web 应用程序快如闪电
granian:让你的 Web 应用程序快如闪电
102 2
|
8月前
|
JavaScript
web学习笔记(二十)
web学习笔记(二十)
40 0
|
6月前
|
XML 前端开发 JavaScript
前端概论 web
前端概论 web
35 0
|
8月前
|
JavaScript
web学习笔记(二十四)
web学习笔记(二十四)
41 0
|
8月前
|
XML JavaScript 前端开发
web学习笔记(二十二)DOM开始
web学习笔记(二十二)DOM开始
46 0
|
8月前
|
JavaScript 前端开发 Go
web学习笔记(二十六)
web学习笔记(二十六)
48 0
|
8月前
|
存储 JavaScript 前端开发
web学习笔记(十八)
web学习笔记(十八)
29 0
|
人工智能 监控 安全
|
Web App开发 前端开发 JavaScript
认识Web和Web标准
《前端基础》
243 0
|
存储 算法 中间件
是什么让 Web 3.0 与众不同?
是什么让 Web 3.0 与众不同?

热门文章

最新文章