data: 2020.11.9 10:00AM

description: seacms代码审计笔记

0X01前言

seacms(海洋cms)在10.1版本后台存在多处漏洞,事实上当前最新版V10.7这些漏洞都没有修复,网上已有10.1版本相关的分析文章,这里就不再重复赘述。我们简单分析下文章中未体现的几个漏洞。

0X02分析

代码注入

在后台admin_ping.php中,看下代码:

<?php
header('Content-Type:text/html;charset=utf-8');
require_once(dirname(__FILE__)."/config.php");
CheckPurview();
if($action=="set")
{
$weburl= $_POST['weburl'];
$token = $_POST['token'];
$open=fopen("../data/admin/ping.php","w" );
$str='<?php ';
$str.='$weburl = "';
$str.="$weburl";
$str.='"; ';
$str.='$token = "';
$str.="$token";
$str.='"; ';
$str.=" ?>";
fwrite($open,$str); //直接写入,未过滤
fclose($open);
ShowMsg("成功保存设置!","admin_ping.php");
exit;
} ?>

代码中直接取$_POST['weburl']$_POST['token']的值写入php文件,我们直接传入";phpinfo();",看下结果:



任意文件删除

admin_template.php第114-133行:

elseif($action=='del')
{
if($filedir == '')
{
ShowMsg('未指定要删除的文件或文件名不合法', '-1');
exit();
}
if(substr(strtolower($filedir),0,11)!=$dirTemplate){ //目录限制,只判断前11个字符
ShowMsg("只允许删除templets目录内的文件!","admin_template.php");
exit;
}
$folder=substr($filedir,0,strrpos($filedir,'/'));
if(!is_dir($folder)){
ShowMsg("目录不存在!","admin_template.php");
exit;
}
unlink($filedir);
ShowMsg("操作成功!","admin_template.php?path=".$folder);
exit;
}

代码中目录限制知判断前11位字符,利用../绕过限制,实现任意文件删除。

由于成功安装程序后,安装文件被更名为index.phpbak,故无法和重装漏洞组合利用,只能造成对网站的破坏。

目录遍历漏洞

问题和任意文件删除类似:

else
{
if(empty($path)) $path=$dirTemplate; else $path=strtolower($path);
if(substr($path,0,11)!=$dirTemplate){ //与上面同理
ShowMsg("只允许编辑templets目录!","admin_template.php");
exit;
}
$flist=getFolderList($path);

END

最新文章

  1. 编译器开发系列--Ocelot语言1.抽象语法树
  2. centos6和centos7防火墙的关闭
  3. IOS textField(textview)字数判断
  4. 聚合及UML表示
  5. 正则表达式获取TABLE里的内容
  6. ORACLE创建表之前判断表是否存在与SQL Server 对比使用
  7. Common Linux log files name and usage--reference
  8. 用Django搭建个人博客—(2)
  9. firebug中console命令尝试
  10. 分析Sizzle引擎
  11. Qt多线程编程总结(一)
  12. python基础篇_005_迭代器和生成器
  13. 获取某个元素第一次出现在数组(json数组)的索引
  14. win10下安装PHP_CodeSniffer 检查编码规范
  15. 如何使你的Android应用记住曾经使用过的账户信息
  16. 【Cesium】坐标理解(转)
  17. JavaWEB SSH文件上传
  18. 【教程】【FLEX】#006 控件位置的拖动
  19. UVA - 10815 - Andy's First Dictionary STL
  20. CROC 2016 - Elimination Round (Rated Unofficial Edition) B. Mischievous Mess Makers 贪心

热门文章

  1. hadoop学习(二)hadoop集群的启动
  2. java swagger ui 添加header请求头参数
  3. ollvm混淆的某apk题目的逆向分析
  4. XCTF simple-unpacked
  5. DHCP部署与安全
  6. [网络流24题]最长k可重线段集[题解]
  7. M1卡分类
  8. ELK多索引配置(filebeat)
  9. shell脚本(11)-流程控制case
  10. ODOO14 ---系统启动方式