- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
挖掘PHP整站程序漏洞的一些思路和经验
挖掘PHP整站程序漏洞的一些思路和经验
(廖坚先)Bykid@广东科干
第一次写稿同时也是第一次投稿,文章写的不好,大家多多包涵;进入正题,今天要跟大家分享的是挖掘PHP整站程序漏洞的一些思路,就拿phpcms2007整站 版本: PHPCMS 2007 - 更新日期: 座机电话号码 来说吧。
先给大家展示我在phpcms2007挖掘到的几个安全漏洞和安全隐患,虽然有的已经在phpcms2008中不存在,但是却可以从中得到一些经验或许这些漏洞在其它整站程序中存在也不稀奇啊,然后呢再引出我是如何快捷的发现它们的,所以重点还在后面,大家要耐心看下去啊。
Bug- 1:漏洞出现在安装整站的文件install.php,关键源代码:在217行“file_put_contents PHPCMS_ROOT./data/uninstall/phpcms/phpcms.php,phpcms_encode serialize $user ,uninstall ;”和473行“@unlink PHPCMS_ROOT./data/install/phpcms/phpcms.php ;”,大家可以按照这个路径去找找看有没有install这个文件夹。答案是没有的,phpcms.php是在uninstall\phpcms\下面。这里应该是程序员笔误,他应该是想删除217行建立的phpcms.php,此文件的作用是为了最后的安装操作传递用户填的管理员的账号和密码的。账号和密码经过了自写的函数“phpcms_encode”的加密但是可还原,同时这些编码是没有以PHP代码的形式存放的,也就是说我们浏览那个文件就可以看到内容并且通过“include\auth.func.php”里面的“phpcms_decode”函数解密来查看。
Bug- 2:漏洞出现在corpandresize\ ui.php,关键代码如下:$dirnames dirname $PHP_QUERYSTRING ;//得到url问号后面的参数$tmp PHPCMS_ROOT./.str_replace $PHPCMS[siteurl],,$dirnames ./;$tmp_url str_replace $PHPCMS[siteurl],,$dirnames ;if preg_match /http:/,$tmp //重点:只要提交的是外部站点的地址就会执行花括号的代码
include_once PHPCMS_ROOT./include/upload.class.php;
$tmp PHPCMS_ROOT./.$PHPCMS[uploaddir]./.date Ym ./;
$tmp_url $PHPCMS[uploaddir]./.date Ym ;
dir_create $uploaddir ;
我们的目的是利用dir_create $uploaddir ,$uploaddir是未初始化的这样我们可以post这个变量上去,同样也应该是程序员的笔误,按照正常的逻辑$uploaddir这里应该是$tmp来的,这样就让我们有机可乘了 *^__^* 嘻嘻……顾名思义dir_create就是创建文件夹的,这个函数在“include\global.func.php”中被定义,值传递进去后没有什么限制,就不贴代码了。
Bug- 3:这个是Oday漏洞来的,phpcms2008SP3-座机电话号码版本中还存在,漏洞出现在“corpandresize\process.php”关键代码:$thumbfile $_COOKIE[thumbfile];if $thumbfile @unlink TMP_PATH./.$thumbfile ;变量$thumbfile是从cookie中来的,大家可以自由发挥,TMP_PATH这个常量定义在“config.inc.php”里面,其实他也是cookie中传来的变量$tmp,所以$tmp+$thumbfile就可以删掉任何你想要删除的文件了,其实这个图片裁减的这个组件安全问题还是蛮多的。
好啦,到现在大家有没有发现这几个漏洞都是跟文件或文件夹的操作有关呢?想要渗透一个网站拿到webshell肯定要上传webshell了也就是对文件的操作了,那就关涉到PHP的文件操作函数。
所以我要告诉大家的一条挖掘思路是利用dreamweaver的查找功能以PHP的函数作为关键字来查找,然后再追踪那些传进去的变量是否自己可以控制的。
我收集了一部分PHP的文件操作函数如下,可以方便大家作为关键字来挖掘漏洞: chdir string dir 改变当前目录 new dir string dir 一个类 int opendir str
文档评论(0)