探索黑客技术攻防,实战研究与安全创新

导航菜单

Oblog4.0最新通杀漏洞大曝光

Oblog是一款使用非常广泛的多用户博客系统,以专业、安全、稳定而著称,将有相当的市场地位,自从与动网合作后,发展更加迅速。然而oblog在程序越来越完善的同时,也带来了许多安全问题,最近几天,oblog的漏洞被吵得热火朝天,我相信许多人都已经知道了,就是那个通杀的oday,漏洞出在js.asp文件中(关于该漏洞的详细利用,大家可以仔细阅读一下我之前写的一篇关于这个的文章),但是我们今天要讨论的不是这个js.asp漏洞,而是另外一个重量级的漏洞,这个漏洞出自tb.asp漏洞,影响4.0所有相关的版本,包括acess免费版本和sql商业版,但是针对官方最新发布的4.5版本无效(4.5版本是测试版本,官方不建议正式采用,提供下载的依然是4.0版本)。利用此漏洞可以得到管理员的密码,继而闯入后台获取webshell,甚至是控制服务器。

当然为了让大家更好地理解漏洞原理,我们来看一下tb.asp文中相关的漏洞代码。


tb.asp的功能是引用通告、引用通告大概和评论,和terackback之类的东西差不多。大家可以看到LogId这个变量是从“Request(“id”)”得到的,但没有经过任何过滤就直接到了下面的Set rs = oblg.Ex-cute (“SELECT TBcode FROM oblg_log WHERE logid = “&logid),这个也太粗心了。其中检查引用通告授权码是否过期这个过程调用了查询语句,授权码到底是什么东西,我们不要管它,只要我们满足url变量等就可以实现注入。

看了这么多的代码,了解了漏洞产生的原理,现在我们就来看看如何利用。在浏览器中提交http://localhst:88/oblog4/tb.asp?id=1%20and%201=1&url=http://网址&blog_name=危险漫步&title=好文章&excerpt=不错啊,返回了“True :200705032258eu2xkj87qx7”之类的一些错误信息,我们不用管它,我们继续提交http://localhost:88/oblo4/tb.asp?id=1%20and%201=1&url=http://网址&blog_name=危险漫步&title=好文章&excerpt=不错啊,返回了“日志不存在”的提示。

好了,接下来我们就可以注入了,我们来看能不能够union查询,提交http://localhost:88/oblog/tb.asp?id=1 and1=2 union select 1 from oblog_admin where id=1&url=网址&blog_name=危险漫步&title=好文章&excerpt=不错啊,出错了,似乎字段类型不一致。没办法,我们来猜解密码,想了想发现这个驻点,除了返回信息有一点点不同凡响外,其他的没什么特别的。手工测试也太累人了,我觉得还是交给nbsi好了,我们把注入地址变化一下,变成http://网址/tb.asp?url=网址&blog_name=危险漫步&title=好文章&excerpt=不错啊&id=1。

06183707ad473b1847583a28993dfebce204ac67.jpg

Oblog的表名(Y_oblog_admin)比较特别,nbsi自带的表名里面默认是没有的,我们需要手工加上,字段(Y_passord、Y_userame、Y_d)也需要手工加上,加上判断的关键字“True”,一分钟不到,nbsi就把密码账号猜解出来了。

那么接下来我们该做什么呢?当然是破解md5密文哦进入嗯后台拿webshell了,我们可以选择md5cracker破解也可以试试md5网站查询,这就要看看各位的运气了,因为谁也帮不了谁。如果是sql的商业版本oblog,我们就没有必要那么麻烦了,直接update修改管理员密码:http://网址/tb.asp?id=1;update oblog_admin set password=’469e80d32c0559f8’ where id=1--&url=http:网址&blog_name=危险漫步&title=好文章&excerpt=不错啊,剩下的就是直接闯进后台,在后台可以看到web绝对路径,sql的版本可以直接差异备份数据库得到webshell。由于我没有sql的商业版本,所以我也就没有去测试了。

好了,假设大家已经进入了后台,现在正式拿webshell。我们到网上去搜索“oblog4后台拿webshell的办法”,千篇一律都是讲后台添加“gif|jpg|png|bmp|rar|zip|swf|doc|aaaspspaspsp”的上传后缀,估计这种方法又是针对很古老的版本,如今的oblog进入后台根本找不到设置上传文件类型的地方。我们再来看一下备份数据库和恢复数据库,可是我仔细看了一下admin_database.asp,里面当前数据库的路径都是从包含文件conn.asp里面获得的,我们根本没有办法控制它。我们再来看看上传,oblog有一个用户目录的设置,记得以前有人说Win2003环境下结合上传可以拿webshell。假设我们设置一个用户目录是aaa.asp,并且设置成默认目录,我们在去前台申请一个用户,比如lengyang,那么lengyang这个用户的博客地址就是http://网址/oblog4/aaa.asp/lengyang/index.html,我们把一个asp木马后缀改成jpg,如果我们把这个jpg上传到了aaa.asp目录或者其子目录里面,那么这个jpg格式的木马就会被执行,但和微软的bug有关。经过研究发现,无论我们在后台上传什么东西,都是传到了UploadFile这个目录,UploadFile这个目录是在aaa.asp之外的目录,和aaa.asp这个目录一点的关系都没有。记得老版本的oblog可没有这么聪明,也是,时代变了!

最后,我终于找到了一个在Win2003环境下拿webshell的办法。首先我们使用管理员账号进入后台,点击用户目录管理,添加一个用户目录aaa.asp,并且设置成默认目录,接着点击“模版管理”下面的用户模版管理,修改默认模板(文本方式),也就是第一个模版了,修改主模版,将一句话木马<%execte requet(“a”)%>插入代码的最后面,然后保存。

u=3045016673,3835425541&fm=15&gp=0.jpg

接着我们登录前台,注册一个新用户,访问自己的博客首页,首页已经变成木马了。最后当然就是上传大马,控制服务器了。

怎么样,是不是觉得很简单,Win2003的服务器我们就这样拿到webshell了,至于Win2003服务器到目前为止我还没有想到一个好的办法,倘若谁能想出来,记得一定分享一下!对了,这个漏洞的修补方法很简单,我们只需要将Logld=Reuest(“id”)改成Logld=int(Requst(“id”))就可以解决问题了!

本文为网络安全技术研究记录,文中技术研究环境为本地搭建或经过目标主体授权测试研究,内容已去除关键敏感信息和代码,以防止被恶意利用。文章内提及的漏洞均已修复,在挖掘、提交相关漏洞的过程中,应严格遵守相关法律法规。

相关推荐