phpArticle2.06两个本地包含文件漏洞

来源:岁月联盟 编辑:zhuzhu 时间:2007-08-19
phpArticle2.06两个本地包含文件漏洞 信息来源:红狼安全小组
文章作者: qaz0987
phpArticle是一个新闻发布系统,最近我学习php有了一段时间,在找网上的代码研究学习的时候,看了看,

发现了phpArticle2.06版本里有本地文件包含漏洞,因为找不到最新的phpArticle3下载,就没有测试。(刚又找了下,网上能下的最新的2.1版本也有此漏洞)

漏洞所在文件是count_bbs.php里

这段代码里对提交的sys变量没做检查,就直接包含为admin/loadsystem/目录下的一个文件了,

所以我们可以提交自己构造的sys变量,使count_bbs.php包含我们想包含的文件,但是由于变量

$loadsystem_suffix前已经有了路径,所以我们不能包含远程文件了,但是可以包含本地任意文件,

并且做为php文件来解析,这样也不错了。

现在就要上传php安全了,但是这里上传图片我们并不能得到图片的原始地址,只能通过php文

件来调用查看,看来上传文件不大可能了,但是,我们发现发表的文章都会生成静态页面,我们可以

把php文件写到静态html页面里,再本地包含,就能执行代码了。

发表一个文章,在编辑文章里选择查看html代码模式,写入

[Copy to clipboard]CODE:
<?phpinfo();?>

,然后提交,

等生成静态页面后,我们找到那个静态页面,就会发现我们的代码保存在html代码里,比如我本地测

试为D:/usr/vhosts/localhost/www/phpArticle2/htmldata/1/2006_12/22336_1.html,然后本地包含

http://localhost/phpArticle2/count_bbs.php?sys=/../../../htmldata/1/2006_12/22336_1.html%00

这里用到的是php的%00漏洞,php在%00处截断代码,不再往后执行,不然就会变成为包含

22336_1.html.php这个文件,执行后就能看到了php信息了,本地包含成功
另一个本地包含
Author:Zizzy

phparticle一直是一个很好的文章系统,我从前都是拿phparticle的代码来学习php,而且它的代码也一直以安全著称,尽管发现的是个很普通的漏洞,但能有幸发现pa漏洞还是很开心的。

首先看phparticle的index.php代码


很明显这个变量没有任何限制就被包含进来,那么理所当然的就形成了包含,而且限制了在modules/default文件夹下,就成了一个典型的php本地包含漏洞。

漏洞相关演示:

QUOTE:

http://www.utspeed.com/index.php?mod=../../../../../../../etc/passwd%00

http://www.phparticle.net/index.php?mod=../../../../../../../etc/passwd%00