| 百度空间跨站攻击一例 |
| 百度空间跨站攻击一例 | ||
| 作者:YesHack.… 文章来源:YesHack.Com 更新时间:2007-11-9 7:36:30 【字体:小 大】 | ||
1.首先这是个Apache的老漏洞,Apache在接收Expect这个HTTP报头会直接输出报头的错误信息,错误信息的内容并没有被转义。
实际过程是这样的,我们发出一个HTTP请求,给加上报头Expect: <xss>,这个报头的内容Expect: <xss>将会被当成错误信息输出。 那么针对百度测试一下 发起一个POST请求, Quote:POST / HTTP/1.1 结果返回了如下内容 Quote:<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"><HTML><HEAD><TITLE>417 Expectation Failed</TITLE></HEAD><BODY><H1>Expectation Failed</H1>The expectation given in the Expect request-header field could not be met by this server.<P>The client sent<PRE> Expect: <xss> Accept-Encoding: gzip, deflate</PRE>but we only allow the 100-continue expectation.</BODY></HTML> 根据测试的结果发现百度空间的所有服务器都存在这个漏洞,当然现在很多大网站也存在这样的问题。 2.再来看看这个漏洞,这个漏洞的跨站脚本是在主域名下实现的,也就是我们可以在hi.baidu.com下写任意的脚本内容. 大家都知道现在百度空间的富文本编辑做得比较安全,基本上没有什么跨站脚本漏洞,上面测试出了漏洞,那么利用这个Apache漏洞我们就能做一些邪恶的事情,要找出能发出这个HTTP报头的方法,如果利用AJAX技术是会有域限制的,所以我们只能利用FLASH文件。 在实际测试过程中遇到了一些问题,Expect头输出的内容是延时的,很多如DOCUMENT.WRITE和NEW IMGE()的方法也都会失效,直接 Expect: <script src=http://xxx.com/xx.js></script>远程链接一个脚本也不会被执行,所以我们只能用<body onload=xxx>类似的方法在网页加载时就运行脚本。 然后最主要的是浏览器的编码问题,当发起这个请求后返回的页面大部分是UNICODE编码,也就是你想写入的JAVASCRIPT不能包含中文,这里LUOLUO哥教了我一个小技巧指定脚本标记中的编码 <script charset="" xxxx 突破了这两个问题就能直接实现我们的攻击。 3.其他重点就不再多说了,毕竟这个老漏洞还有一定的危害。
|
||
|
||
| 文章录入:YesHack 责任编辑:YesHack | ||
您现在的位置: