漏洞分析

关注公众号 jb51net

关闭
网络安全 > 漏洞分析 >

科讯 kesioncms 5.5以下漏洞拿shell方法原理总结(图文)

脚本之家

by:Timeless2008me
      科讯做为一个强大的cms程序大多被政府和教育机构网站所使用,关于科讯的漏洞利用教程网上不是很多。由于科讯的后台登陆需要输入认证码,而认证码没有保存在数据库而是保存在asp文件中,所以在某种程度上增大了拿shell 的难度。下面就个版本拿shell 的方法做一总结。
KesionCMS V3.x和3.x以下版本
网上有0day工具不过没有具体原理,下面就讲一下手工拿shell的方法
关键字:inurl:user/Login.asp 忘记密码? 如果你忘记密码请点击inurl:user/userreg.asp 小提示:在输入用户名后,可以自动检查您想要的用户名
第一步:注册用户,也可以直接用admin admin888一般管理员都没改这个密码。
第二步:在个人资料那里上传gif小马头像
第三步:点击菜单栏中的 服务中心 文件管理。我们上传的gif小马就在upface文件夹里,只要把文件夹名改成upface.asp既可运行小马了。关键是文件名中过滤了"."无法直接重命名这里我们用本地html提交的方法来绕过限制。

第四步:在文件夹管理的窗体中点击右键将页面原文件保存为本地html。
第五步:在文件夹窗口上选择upface文件夹复制其快捷方式,如http://www.xxx.com/user    /user_files.asp?ChannelID=0&topdir=/Upfiles/User/admin3/&action=Main&OpTypeStr=&CurrentDir=upface.asp
第六步:用记事本打开刚才保存的html文件修改关键代码,这里要修改两处,第一处提交地址修改,提交地
              址我们只要将所有的?号替换为http://www.xxx.com/user/user_files.asp?(这个地址通过刚才复
              制的那个地址对比得到)既可,具体情况自己分析源文件。
              第二处文件过滤修改,在第84行左右有如下字段
function IsStr(w)
                {
                    var str = "abcdefghijklmnopqrstuvwxyz_1234567890"
                    w = w.toLowerCase();
红色部分即为文件夹名所使用的字符,我们只要在其中加入“."既可。完成后保存运行即可将文件夹重命名问xx.asp的形式了。

========================部分源码======================
                
                function Checked()
                {
                    var j = 0
                    for(i=0;i abcdefghijklmnopqrstuvwxyz_1234567890" 字符过滤
                    w = w.toLowerCase();
                    var j = 0;
                    for(i=0;i
form:http://hi.baidu.com/timeless2008/
=============================================================
KesionCMS V4.x和v5.x版本
修改了版本3存在的漏洞。只能通过后台备份拿shell
关键字:inurl:/KS_Data 浏览目录漏洞,可直接下载数据库文件。
挖掘机:KesionCMS5.mdb KesionCMS4.mdb
得到用户名和密码登陆后台上传gif木马,记住路径。
然后转到 www.xxx.com/admin/ks.database.asp?action=backup 页面,

这是备份数据库的页面,不过默认情况下我们无法输入小马路径,我们在www.xxx.com/admin /ks.database.asp?action=backup页面点右键保存源码为本地html形式,然后用记事本打开修改当前数据库路径,运行 html文件备份即可拿到shell。
======================部分源码===================
www.xxx.com/admin/ks.database.asp?Action=BackUp&Flag=Backup">    
   当前数据库路径D:\wwwroot\KS_Data\KesionCMS4.mdb" readonly>备份数据库名称[如果备份目录存在该文件将覆盖,否则将自动创建]  Data(2009-4-16).bak">