以前总结的,拿出来支持一下新版块!
跨站漏洞产生的原因:由于程序员在编写程序时对一些变量没有做充分的过滤,直接把用户提交的数据送到SQL语句里执行,这样导致用户可以提交一些特意构造的语句,一般都是带有像JavaScript等这类的脚本代码。在这个基础上,黑客利用跨站漏洞输入恶意的脚本代码,当恶意的代码被执行后就形成了所谓的跨站攻击。

跨站漏洞发掘:一般来说对于人机交互比较高的程序,比如论坛、留言板这类程序都比较容易进行跨站攻击。利用跨站漏洞黑客可以在网站中插入任意代码,这些代码的功能包括获取网站管理员或普通用户的cookie,隐藏运行网页木马,甚至格式化浏览者的硬盘,只要脚本代码能够实现的功能,跨站攻击都能够达到,因此跨站攻击的危害程度丝毫不亚于溢出攻击。值得注意的是,虽然像Javascript这样的一些脚本有很强大的功能,不过浏览器一般都有安全策略,限制未知网络对本地计算机的访问和破坏性操作。但是跨站恶意注入的Javascript代码已经可以再安全策略的允许范围内完成任意的功能了,如果利用浏览器的某些漏洞,经过浏览器的安全策略,那么可以实现随意访问硬盘执行代码的任意功能了。

在实际中,获得绕过过滤实现跨站方法,最好是输入一些测试script语句,看生成的页面效果,如果script语句被替换不能执行,则打开观看生成页面的html代码,可以发现某些关键字的转换过程,然后想法使用其它关键字绕过。比如在脚本语句中试试已经存在的属性,如<img src=javascript:alert(“test”)>,还可以试试将部分转换成ASCII码的表示方法,添加空格,tab。用事件和属性避免关键字都是可以绕过过滤的。在Rsnake著名的论文XSS (Cross Site Scripting) Cheatsheet Esp for filter evasion里面,详细总结了能绕过顾虑的属性和方法。

假如是script代码被屏蔽,可以重新构造新的script语句解除闭合。如果网站程序有源代码的话,就可以清楚的指导转换的过程,绕过过滤也就不难。

在url地址栏里也可以实现跨站,因为IE地址栏本身就带有执行js命令的功能。

 

注:脚本安全学习笔记是个人在学习脚本安全过程中对自己所学的总结,大部分都摘自曾云好写的书《精通脚本黑客》。