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

安全基础
IE浏览器防黑十大秘籍,黑客也没招
网络工程师讲解系统安全漏洞的形成和防治
清除导致XP系统反复重启的新网银木马
识破QQ欺骗网络地址的几种方法汇总
安全基础知识 细说暴库的原理与方法
排除无线突然中断故障实例
强搜天线 搜出WiFi世界的安全漏洞
网管应用技巧 内网安全十大策略说明
如何修改局域网内部打印机的IP地址
如何找出IIS中隐藏的网站
EFS加密技术的概念分析及一次解密经过
提高Windows XP系统安全性要关闭的10种服务
PHPBB 2.0.22 MOD版最新注入漏洞
修复Windows系统忘记密码的9个高招
用SockOnline软件轻松突破端口限制
安全基础知识 最强0到33600端口详解
执行文件方式加密FLASH文件的解密方法
网吧被入侵后的应对解决方法
网页“黑手”如何攻击你的Windows系统
不要让别人读了你的信 谈私密数据保护

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-19   浏览: 130 ::
收藏到网摘: 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官方论坛发帖共同探讨。