PHPBB 2.0.22 MOD版最新注入漏洞(3)
然后在前台发帖或编辑帖子来上传附件,上传扩展名为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官方论坛发帖共同探讨。