首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Squirrelmail远程代码执行漏洞(CVE-2017-7692)复现+修复方案

Squirrelmail远程代码执行漏洞(CVE-2017-7692)复现+修复方案

作者头像
FB客服
发布2018-02-26 15:10:39
2K0
发布2018-02-26 15:10:39
举报
文章被收录于专栏:FreeBufFreeBufFreeBuf

一、实验环境

操作机:kali2.0

目标机:Centos 6.0

Squirrelmail版本:1.4.22-4el6

二、漏洞原理

1、有一个可以登录的邮箱账号和密码

2、Squirrelmai的MAT(因特网邮件传送代理)需要配置Sendmail

3、Squirrelmail的edit_identity配置为true(默认配置)

该漏洞的触发点位于Squirrelmail源码中的Deliver_SendMail.class.php文件中,在initStream函数中,使用了escapeshellcmd()来过滤用户的信息,然后将处理后的字符串传入popen函数(打开一个指向进程的管道)。

但是由于escapeshellcmd()函数只对以下字符进行转义(在字符前面添加\):

三、复现过程

1、解压文件使用poc.sh验证漏洞是否存在

2、根据脚本提示,输入用户名和密码 选择payload种类,设置IP和监听端口

3、等待10秒左右,可以看到,目标服务已经成功的反弹了cmdshell

4、接下来我们进入到Squirrelmail的源码目录下,留下一句话木马

四、漏洞修复

触发漏洞文件以及函数位置

/usr/share/squirrelmail/class/deliver/

initStream函数

将此代码 用以下代码替换

附 POC

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-05-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FreeBuf 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 2、根据脚本提示,输入用户名和密码 选择payload种类,设置IP和监听端口
  • 3、等待10秒左右,可以看到,目标服务已经成功的反弹了cmdshell
  • 4、接下来我们进入到Squirrelmail的源码目录下,留下一句话木马
相关产品与服务
脆弱性检测服务
脆弱性检测服务(Vulnerability detection Service,VDS)在理解客户实际需求的情况下,制定符合企业规模的漏洞扫描方案。通过漏洞扫描器对客户指定的计算机系统、网络组件、应用程序进行全面的漏洞检测服务,由腾讯云安全专家对扫描结果进行解读,为您提供专业的漏洞修复建议和指导服务,有效地降低企业资产安全风险。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档