freeBuf
主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

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

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

FreeBuf+小程序

FreeBuf+小程序

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

99+
某CMS从CSRF到Getshell
FreeBuf_266193 2020-06-30 22:02:55 305590

写在前:

最近准备看一下代码执行相关漏洞,日常逛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_266193 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
FreeBuf_266193 LV.4
这家伙太懒了,还未填写个人描述!
  • 4 文章数
  • 3 关注者
一处代码执行引发的思考
2018-09-16
某CMS注入分析及注入点总结
2018-01-02
网站后台“空降”了一个管理员
2018-01-01