最近爆出了PHPCMS V9.1.13任意文件包含漏洞,新版本(v9.1.16)已经针对该漏洞做了修复。下载PHPCMS V9.1.13,解压。这里我就用Linux天生具备的高效分析能力去快速定位存在漏洞的函数。就懒得找入口点看代码了。首先我们看触发漏洞的url:/index.php?m=search&c=index&a=public_get_suggest_keyword&url=test&q=../../phpsso_server/caches/configs/database.php我将public_get_suggest_keyword作为关键字在源码中查找:1,cd phpcms_v9_GBK/install_package/2,grep -H -n -R "public_get_suggest_keyword" *参数说明:-H可以显示文件名;-n显示行号;-R递归目录,查找所有文件结果如图:在phpcms/modules/search/index.php文件的第198行找到该函数的定义了:public function public_get_suggest_keyword()vim phpcms/modules/search/index.php然后在vim里按shift+冒号,进入vim命令行模式,输入set number可以显示行号,再输入198,直接跳转到198行处:198 public function public_get_suggest_keyword() {199 $url = $_GET["url"]."&q=".$_GET["q"];200 201 $res = @file_get_contents($url);202 if(CHARSET != "gbk") {203 $res = iconv("gbk", CHARSET, $res);204 }205 echo $res;206 }注意第201行的file_get_contents函数,该函数可以获得指定文件的内容,在此并未做过滤直接可以读取任意文件内容。在新版本中该函数已经修复:198 public function public_get_suggest_keyword() {199 $url = $_GET["url"]."&q=".$_GET["q"];200 $trust_url = array("c8430fcf851e85818b546addf5bc4dd3");201 $urm_md5 = md5($url);202 if (!in_array($urm_md5, $trust_url)) exit;203 204 $res = @file_get_contents($url);205 if(CHARSET != "gbk") {206 $res = iconv("gbk", CHARSET, $res);207 }208 echo $res;209 }Libxml2多个整数溢出漏洞MIT Kerberos 5未初始化指针引用远程拒绝服务漏洞相关资讯 漏洞 PHPCMS漏洞 PHPCMS
- 快递官网漏洞泄露 1400 万用户信息 (08/12/2014 08:37:42)
- 要389目录服务器访问绕过漏洞 (10/01/2012 09:18:08)
- ASUS Net4Switch "ipswcom.dll" (03/02/2012 09:32:42)
| - 软件漏洞是一笔大买卖! (10/06/2012 08:28:32)
- PHPCMS 2008多个安全漏洞 (07/28/2012 08:30:06)
- Open Handset Alliance Android (03/01/2012 06:59:34)
|
本文评论 查看全部评论 (0)
评论声明- 尊重网上道德,遵守中华人民共和国的各项有关法律法规
- 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
- 本站管理人员有权保留或删除其管辖留言中的任意内容
- 本站有权在网站内转载或引用您的评论
- 参与本评论即表明您已经阅读并接受上述条款
<
|