当前位置: 首页 > 图文教程 > 网络安全 > 安全基础 > PHPBB 2.0.22 MOD版最新注入漏洞

安全基础
十大高招教会你摆脱黑客的网络攻击
2007个人计算计安全配置手册---武装到牙齿
【安全防护】网络入侵检测初步探测方法
保护系统 从防范IP泄漏开始!
教你如何防止系统中IE被恶意修改
交换机路由器更加安全三种办法
网络的核心所在 交换机漏洞五宗罪
上网必看,8招让你安全高效上网
提醒 网络玩家成为黑客攻击主要对象
十一种常见流氓软件完全卸载方法
聊天的危险 即时通讯常见安全问题
保护系统从防范IP泄漏开始
动态嵌入式DLL木马简便发现与清除方法
更新换代Vista系统安全新特性全面阐述
不可不留神 病毒损坏硬件有七大损招
注册表探秘 跟踪病毒的映象劫持的危害
追根溯源DLL技术木马进程内幕大揭密
擦亮眼睛小心假冒卡巴斯基的陷阱
简单安全习惯减少电脑资料丢失损坏几率
避免自己的服务器被列入黑名单的小技巧

安全基础 中的 PHPBB 2.0.22 MOD版最新注入漏洞


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-19   浏览: 162 ::
收藏到网摘: n/a

  PHPBB 是国内使用非常多的一款PHP论坛程序,这次出现的注入漏洞主要是针对PHPBB简体中文MOD版,连最新的2.0.22 版本也受影响(通杀低版本的PHPBB2 MOD版)。关于该漏洞的形成原因我们不作讨论,有兴趣的朋友可以自己阅读代码分析一下,本文将主要介绍该漏洞的详细利用以及如何在后台拿到 Webshell。

  我到PHPBB中文官方网站下载了最新版本的2.0.22,在本机搭建了PHP环境以做测试。要寻找使用这套程序的论坛可以在 Google里以“Powered by phpBB © 2001, 2005 phpBB Group”为关键字搜索,如果要找国内的目标就以“Powered by phpBB © 2001, 2005 phpBB Group phpBB中文开发小组提供技术支持”为关键字进行搜索。这个漏洞可以直接暴出论坛管理员的用户名及32位MD5加密密码。

  高手们已经制作出了针对该漏洞的利用工具(伤心的鱼友情赠送给我的)。

  工具上面标明了“phpBB<=2.0.22 Links MOD Exp”,针对最新版本2.0.22有效。其实针对旧版本的MOD版PHPBB程序也是同样有效的!到底如何利用呢?非常简单!只要在Url后面填上目标论坛的访问地址(注意要连最后面的/也必须填上,否则会出错),然后直接点“暴”,如果目标存在漏洞,就会暴出管理员的用户名和32位的MD5密码。

  成功暴出了管理员的用户名(hackest)和32位MD5密码(3787795aeee01c9ab7267f252c932572),将密码放到www.***com网站上进行查询密码明文。

  至于密码能不能查出来,那就得看密码的复杂程度如何了。查询出密码明文后就可以直接登录论坛,然后再点击论坛底部的“管理员控制面板”打开后台登录窗口,使用得到的密码进入后台。

  前面所讲述的操作都非常简单,基本上没有什么太大的难度。可是进入了后台要获取Webshell就有点麻烦了,PHPBB旧版本还可以直接添加上传类型为 PHP的文件,然后直接上传PHP的后门得到Webshell。可是,最新版本的PHPBB后台已经不允许添加上传类型了。

  可以利用的基本上都限制了,经测试发现部分空间可以添加inc扩展名,然后前台发帖上传扩展为inc的PHP后门程序也可以成功解释执行。不过这个方法局限性太大,但有部分论坛确实是可以成功的!添加inc扩展名的操作也比较简单。在后台找到“扩展名”—“扩展名控制”,然后在“扩展名”里填入inc,勾选上“增加”,其它默认,然后点提交即可。

  然后在前台发帖或编辑帖子来上传附件,上传扩展名为inc的PHP后门,再在预览里找到Webshell的访问路径即可得到Webshell(在预览里直接点击附件名即可打开Webshell)。当然了,要是空间支持其它脚本,大可以添加上传jsp后门哦。如果要添加asp后门也是有办法的,虽然“禁止扩展名”里禁止了上传asp。但是我们可以先把禁止了的asp删除掉,然后再参照添加inc扩展名的方法添加即可。

  除了这个方法可以拿到Webshell外,还有一个稍为复杂点的方法。这个方法同样局限性也很大,因为要求论坛要使用具有root权限的MySQL用户名和密码才可以成功!
具体操作步骤如下(以本机架设的测试论坛举例说明):

  1、先使用管理员用户名和密码登录后台;

  2、在浏览器中访问http://127.0.0.1/admin/admin_disallow.php?setmodules=00(会看到空白页面);

  3、在后台找到“总体管理”—“备份数据库”,执行备份数据库操作(备份完毕会自动弹出下载窗口,下载保存本地即可);

  4、复制备份文件另存一份(用于导出Webshell后恢复论坛),使用记事本打开下载回来的数据库文件phpbb_db_backup.sql,查找关键字 ●INSERT INTO phpbb_categories (cat_id, cat_title, cat_order) VALUES●,一共有两处!●INSERT INTO phpbb_categories (cat_id, cat_title, cat_order) VALUES●后面的内容会根据情况而有所不同。比如我这里是●INSERT INTO phpbb_categories (cat_id, cat_title, cat_order) VALUES('1', '测试分区', '10');●;

  5、把 ●INSERT INTO phpbb_categories (cat_id, cat_title, cat_order) VALUES('1', '测试分区', '10');●改为●INSERT INTO phpbb_categories (cat_id, cat_title, cat_order) VALUES('1', '', '10');SELECT cat_title INTO OUTFILE 'D:\\Program Files\\VertrigoServ\\www\\shell.php' FROM phpbb_categories where cat_id=1;●,保存即可。简单的解释一下,“D:\\Program Files\\VertrigoServ\\www\\shell.php”是导出Webshell的绝对路径(即为我本机的论坛安装目录),这个方法是利用数据库操作实现的,先往一个已存在的表段里插入PHP一句话后门,然后再使用“SELECT 表段名 INTO OUTFILE”导出到论坛目录,从而得到Webshell(要注意的是里面的绝对路径一定要把\替换成\\,否则不可以成功,而*nix类系统使用/连结路径);

  6、在后台找到“总体管理”—“恢复数据库”,浏览选中刚才改好的备份文件phpbb_db_backup.sql,然后点击“开始恢复”,恢复完毕后一般会看到一些错误,不必理会,过会儿会恢复就是了;

  7、使用一句话客户端连接http://127.0.0.1/shell.php,得到简易的Webshell;

  8、参照第6步,使用未修改过的phpbb_db_backup.sql恢复论坛数据(要是不恢复,论坛会出错)!

  至此就顺利得到了Webshell,就是操作上有点繁琐。接下来怎么玩就是你自己的事了,嘿嘿……喜欢的话就上传大马什么的,然后提权……由于我本机架设的 PHP环境没有做权限设置,是可以直接执行系统命令的。这种办法麻烦了点,而且要求的权限的也非常特殊,倘若论坛使用的并不是root权限的用户,不可以调用“SELECT 表段名 INTO OUTFILE”,将无法成功导出Webshell。还有一个就是要得到绝对路径,这个倒是好办,直接在论坛访问地址后面加上 db/oracle.php,回车即可暴出论坛的绝对路径。

  这是利用了PHPBB的另一个暴绝对路径的漏洞。至于其它更完美的在后台得到Webshell的办法,由于本人技术十分有限,研究数天也没有找到太通用的拿Webshell方法,实在是美中不足!如有任何问题请到X官方论坛发帖共同探讨。