来源:自学PHP网 时间:2015-04-17 12:00 作者: 阅读:次
[导读] 0x01前沿MetInfo企业网站管理系统:采用PHP+Mysql架构,全站内置了SEO搜索引擎优化机制,支持用户自定义界面语言(全球各种语言),拥有企业网站常用的模块功能(企业简介模块、新闻模块...
0x01 前沿
MetInfo企业网站管理系统:采用PHP+Mysql架构,全站内置了SEO搜索引擎优化机制,支持用户自定义界面语言(全球各种语言),拥有企业网站常用的模块功能(企业简介模块、新闻模块、产品模块、下载模块、图片模块、招聘模块、在线留言、反馈系统、在线交流、友情链接、网站地图、会员与权限管理)。强大灵活的后台管理功能、静态页面生成功能、个性化模块添加功能、不同栏目自定义FLASH样式功能等可为企业打造出大气漂亮且具有营销力的精品网站。 这套程序之前爆出来一个远程执行代码的漏洞之后,就没什么人去挖掘了。整套程序还是很多人用的,下图是查出来的结果
整个对这套cms审计花了我几天的时间,下面一一道来。
0x02 注入一 此次代码审计是官网最新版 在message/access.php中13行
大家应该看到了,这个$id是没过滤的,这里的$id是怎么来的呢?请看include/common.inc.php中
这个daddslashes()这个函数在global.func.php中 其实对传进来的值进行转义
所以这里可以无视了…
注入如下图所示
次漏洞影响2.0以上所有版本,在3.0中加入了一个防注入函数,但是可以绕过注入的
0x03 注入二 在about/show.php中8行
这里明显的也一样,但是这里是盲注,看看之后的? 这里的$show如果不存在或者是$show数组中isshow不存在就返回到错误页面,所以这是一个盲注了 注入结果如图
同样是可以获取我们的信息的…如果是手工来判断就很累了…
0x04 注入三 在member/feedback.php中的16行
这里的$serch_sql中的变量$met_fd_class是可控的 我们跟踪一下$serch_sql这个变量 在26行我们发现
执行了。所以同样存在上面的问题了
但是这里的前提是要登录状态,因为他验证了权限的问题 在feedback.php开头就包含了权限验证的
所以这里的注入必须是你注册一个用户,然后登录进行注入,注入结果如图 给出注入语句吧,首先必须闭合前面的)号,然后注释掉后面的语句 Exp: http://www.2cto.com /member/feedback.php?&met_fd_classname=1&met_fd_class=99999)union select 1,2,3,4,5,user(),7,8,9,10-- a
0x05 注入四 这里是个鸡肋注入了.. 既然是危险还是爆出来吧 在job/save.php 的73行,存在insert注入
这里的$jobid,是可控的,怎么可控不可控我就不说了,自己测试吧 为什么说它鸡肋呢? 一,这是一个insert语句,如果我们将jobid,后面的参数加进去,然后再注释掉组后的,如我们将$id = (select password from admin where id=1)#这样的语句插进去呢? 事实,是可以成功的,但是成功插入管理员的md5,但是得读出来吧,组后发现该met_cv这个表唯一读出来的就是时间,但是时间这个字段又不能插.所以直接插就没办法了,所以这里还是鸡肋的。
0x06 注入五 在member/cv_editor.php中的53行存在一个update注入
同样的问题了,我就不扯淡了 鸡肋
0x07 注入六 在member/fdeditor.php中的109行
同样验证了权限问题,必须注册用户然后注入的,工具是没办法了。
注入如图
其中的各个细节,怎么测试的,我就不写了,实在是太累了,整个代码审计过程当中,需要对一些传进来的参数一步步来测试,也并不是那么容易一下就确定哪里有问题的。所以珍惜别人劳动成果。v
0x08 文件包含 在member/index.php中的8行
这里的$metid是外部传过来的,可控 如果不存在metid这个变量就将index赋给它 如果存在并不等于index的时候就包含$metid,’.php’这个文件,所以我们可以构造一个文件让它来包含 包含方式如下,一再gpc为off的情况下截断 如图
第二种是超长字符截断了 此种情况并不受gpc影响
0x09 密码重置漏洞
在member/getpassword.php中
看到这里重置密码的代码 首先他先将用户名+密码的md5 ,然后对其md5赋给一个变量x 然后再将用户.x然后base64加密下,然后赋值给string,然后将这个string作为 找回密码的url,大家发现这里有问题没? 假设我们注入得到该cms的md5,然后解密不了?然后怎么办?没办法了吧, 如果我们通过这个url重置管理员密码呢?是不是可行了?因为要的用户名和密码的md5都具备,所以我们就可以重置密码了? 想想开发这个重置的功能的程序员,你应该多考虑一下这个问题了啦….. 下面我就给出这个exp
运行如下图
0x10 后台getshell 后台getshell其实有3种方法,我一一道来 方法一:
直接在这里添加php
然后再上传文件管理这里上传php的shell即可
方法二:
在上图位置添加asa文件,在前台上传asa文件,这里鸡肋的地方就是iis下利用了, 产生漏洞原因如图 在job/uploadfile_save.php中
这里的对一些常见的后缀名进行了处理 所以我们前台在应聘的链接里面可以直接上传asa了
方法三:
在后台这里添加新模板
将我们的php马打包成zip格式,然后上传 最后我们的马会解压到templates这个模板文件夹中 如图
访问之
0x11 总结
整套cms我花了几天的时间来研究,只对前台进行挖掘,后台的话挖了也没多大价值。整体收获不少,0day,我就这么放出来了,如果有基友想一起学习的话,还是加群吧! 62512676 接下来我放出重置密码的exp,此exp只用于研究学习之用,通过此exp去非法入侵,与本人无关.
此exp只针对注射出来的管理员和密码(密码解不出来),然后密码会修改为x0h4ck3r 运行结果如图
|
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com