由于微信公众号推送机制改变了,快来星标不再迷路,谢谢大家!
免责声明
文中涉及漏洞均以提交至相关漏洞平台
前言
前面的时间一直都是在学习黑盒漏洞挖掘技巧,但是毕竟web安全的尽头是代码审计。能看得懂代码分析出漏洞才是王道。经过一段时间的学习,也是顺利的挖掘到两个开源CMS的0day漏洞,并且获得CNVD原创漏洞证书。下面就和大家分享一下,大佬勿喷。
第一弹 Joomla!命令执行漏洞
Joomla!是一套全球知名的内容管理系统。Joomla!是使用php语言加上,mysql数据库所开发的软件系统。
受影响版本:<=Joomla 4.2.2
从图片里可以看到,开发没有过滤命令执行函数,导致系统命令执行
源码地址:libraries/src/Editor/Editor.php
行数:78->101
Factory 静态引用这个类 getContainer、定位这个函数、选择第一个文件
这个函数的功能就是创建代码,然后可以看到它又在调用另一个用户自定义函数,再次定位。
来到这里可以看到这是创建一个容器对象,没有了。
可以看到开发并没有对用户提交的php代码进行安全过滤,导致攻击者可以通过这个漏洞获取服务器权限。
简简单单也是收获了一个rce。
第二弹 帝国CMS存在任意文件包含漏洞
帝国CMS官网:http://www.phome.net/
受影响版本:帝国CMS7.5(帝国CMS8.0正在开发中,今年发布)
受影响的部分用户案例
受影响文件路径:/diguo/upload/e/admin/task.php
为了方便分析我在每行代码的下面都写了注释
首先判断ecms的值是否等于dotask,如果等于,则进入if循环语句
然后接收id的值
这里判断id的值,是否存在
执行sql语句
接收用户filename的值,然后拼接../tasks
这里进行逻辑判断,判断用户提交的id值是否存在以及要包含的文件是否存在,然后检查用户提交的文件名或者目录是否存在
判断lasttime是否有值
包含file的值,这里未对要包含的文件进行过滤,导致攻击者可以利用该漏洞获取服务器权限
开始构造POC,先访问下目标文件
可以看到这里是个任务日志,那么开始构造恶意请求
id的值来源于任务,首先准备好文件1.txt,内容为phpinfo
创建任务后,看下任务的id值,有了id,就开始构造请求
/diguo/upload/e/admin/task.php?ehash_oLQ87=“这个值来源于登录后,系统分给我的值”&ecms=dotask&id=2&filename=1.txt&file=1.txt
成功执行了phpinfo
又收获一个漏洞,最后也是成功水到两张cnvd证书
★
欢 迎 加 入 星 球 !
代码审计+免杀+渗透学习资源+各种资料文档+各种工具+付费会员
进成员内部群
星球的最近主题和星球内部工具一些展示
加入安全交流群
关 注 有 礼
还在等什么?赶紧点击下方名片关注学习吧!
推荐阅读