XSS“从1到0”

  时隔半年终于也应该更新了,之前说的每周更新也因为懒散这个借口变得遥遥无期。之所以叫这个标题,是在Freebuf上看到一篇文章,开头作者问到:“网上大多的文章标题都是XXX从0开始,可我们到底什么时候能从1开始呢?”所以我决定写一些关于XSS的东西,具体能坚持多少,我也不知道。

  正文:XSS——实际指CSS(Cross Site Scripting),为了区别与层叠样式表将C写为X。一般我们将XSS称之为,跨站脚本攻击。之前我写的文章中提到过,凡是利用提交恶意代码的攻击都可以称之为注入,所以实际上XSS也是一种注入攻击。所以实际上,XSS造成原因是由于对< script>以及其他敏感关键词的忽视,没有进行适当的过滤而使得攻击者在页面中提交恶意代码形成攻击。如果你学过javascript下面引用的代码就很好理解,如果你并没有学过也不用担心,我会简单解释。之所以刻意说到javascript(下文简写js),是因为现在流行的浏览器100%的支持js,但实际上我们也可以利用flash等进行XSS攻击(不过负责任的说flash正慢慢退出市场),而且我们不一定非要利用到<>或者引号等等符号才能发起XSS更多的东西大家可以百度。后面我也应该会写。

  对于XSS的分类,其实在写文前我看了一些网上流行的一些分类大致是反射型和持久型,这两种分法其实是基于依赖Web应用的。个别也有提到DOM XSS,这种方法是不依赖Web应用处理的,是一种纯粹的客户端XSS类型。其实XSS分类方法很多,除了上述的三种,我仅仅提出一个通用型 XSS的攻击方法,这个方法特殊的地方是在于不受SOP的限制(SOP:同源策略)。对于XSS的历史这里就不多赘述了,在这里我说一下如何查找XSS漏洞,这里提出的是利用工具的方法,手动的方法在介绍这4种攻击的时候,它的应用原理其实就是查找漏洞的方法。利用工具我推荐Pangolin,之前的文章我提到过这个工具,国产的,十分强大,多余就不解释了。还有一款国外的软件,BruteXSS,在Kali Linux下有这款工具。(学黑客必会Kali,我之前就在推荐啦!)

XSS“从1到0”_第1张图片
Brute XSS

  1.反射型XSS

  它是将不安全的用户数据提交至Web应用上,当数据响应就会返回不可信的内容。因为浏览器直接反映的是服务器给出的代码,所以不会验证其安全性直接执行。一般这种方法的利用是通过在URL里面注入恶意代码,通过用户单击执行。因为这种方法只有单击通过后才会执行,所以这种方法也称为非持久型XSS,而且每次需要通过构建含有恶意代码的URL,所以十分不便。没听懂?没事!下面给大家看一下一些恶意的URL:

http://www.baidu.com/search.php?key=">

http://www.baidu.com/userhome.jsp?user=


注意,虽然这个看上去很像之前的反射型XSS,但实际上这是依赖与web应用的。DOM XSS对服务器是不可见的,所以这段危险代码将依存在浏览器。

4.通用型 XSS

  这个方法够我写两篇了,这是在浏览器中执行js的方法,不受SOP制约。因为利用到浏览器缺陷,所以我给出一个09年的例子(书上看的)。

var sneaky = 'setTimeout("alert(document.cookie);",4000);

  document.location.assign("http://gmail.com");';

document.location=

  'chromehtml:"80%20javascript:document.write(sneaky)"';

  上面的代码建立一个sneky变量,达到gmial加载时会延迟执行脚本的功能,在这里实际是延时显示cookies。这个DOM XSS应用针对的是主流的Chrome浏览器的缺陷。当然我们不一定要面对纯浏览器,因为一般浏览器会推荐使用类似谷歌翻译或者一些地图等等的插件组功能等等,我们也可以利用这些来攻破浏览器(想象一下吧,用这种浏览器的用户都得死!)所以通用型 XSS知道这些暂时就够了。

  今天就写到这里了,好久没更新写了这些内容就累得够呛。(抱歉,没有及时更新。但我不会弃坑的,对自己也是一种巩固)文中利用的代码均为js代码,所以对于前端人员可以有一个很好的思路延伸。在下次我会继续补充,也十分感谢在头条和支持我的人,我会不断努力为大家带来有趣的内容。这次的文章中有部分网上或书上的引用,因为对与通用型 XSS和DOM XSS一般都会是针对浏览器的渗透测试以及后端的延伸对于这方面我没有什么经验之谈只好引用。希望大家能去学习一些js基础和浏览器相关,对于XSS的学习有很大的帮助。

  再次感谢大家的支持,谢谢

你可能感兴趣的:(XSS“从1到0”)