- 主题
- 0
- 积分
- 0
- 贝壳
- 0 个
- 注册时间
- 2005-9-3
- 最后登录
- 2008-10-23
|
1 简介
跨站脚本攻击简称为XSS又叫CSS (Cross Site Script),是指恶意攻击者往WEB页面里插入恶意HTML代码,当用户浏览该页之时,嵌入其中WEB里面的HTML代码会被执行,从而达到恶意用户的特殊目的。XSS属于被动式的攻击,因其是被动的且不好利用,所以常常被忽视。
通常的跨站利用方式是攻击者先构造一个跨站网页,然后在另一空间里放一个收集COOKIE的页面,接着结合其它技术让用户打开跨站页面以盗取用户的COOKIE,以便进一步的攻击。这种方式目前已经落后了,其弊端也是显而易见的,因为即便收集到了COOKIE,也未必能进一步渗透进去,多数的COOKIE里面的密码都是经过加密的,如果实行COOKIE欺骗的话,同样也要受到其它的条件的限约。目前跨站攻击需要更多的思路和代码。
2 跨站代码的发展
最新的跨站攻击代码一般形如<script>alert('xss')</script>。
随着替换技术的应用,上面的形式就不实用了,最常见的替换方法如下。
replace(str,"<","<")
replace(str,">",">")
接着,发现很多对象支持“JAVASCRIPT:”的形式代码执行,所以就有下面的跨站代码。
<img src="javascript:alert(/xss/)" width=0>
当然过滤技术也会针对其做相应的变化,结果这种形式也不能用了。
Dim re
Set re=new RegExp
re.IgnoreCase =True
re.Global=True
re.Pattern="javascript:"
Str=re.replace(Str,"javascript-")
re.Pattern="jscript:"
Str=re.replace(Str,"jscript-")
re.Pattern="vbscript:"
Str=re.replace(Str,"vbscript-")
Set re=nothing
跨站技术也在不断发展,很多对象支持“&#ASCII”的表示方法,这样下面的代码也是有效的。
<img src="javascript:alert(/xss/)" width=0>
有矛就有盾,过滤技术也出了相应的解决方法,增加了对“&”的过滤。
replace(str,"&","&")
到此似乎,跨站攻击的代码已经很难发展下去了,怎么样来解决问题呢。其实还有很多方法的。
<img src="java script:alert(/xss/)" width=0>
上面的代码是一种利用特殊字符搞出来代码,中间的空格是用TAB键搞出来的,其实如果搞清楚过滤机制,利用这种方法来对付最简单。当然也会有人想到使用事件来执行代码。
<img src="#" onerror=alert(/xss/) width=0>
3 最新动态
目前有人提出通过跨站构造表单,表单的内容是利用备份或者加管理员等功能得到一个高权限。 |
|