php写入配置文件getshell,代码审计之配置文件写入导致Getshell实例分析

原标题:代码审计之配置文件写入导致Getshell实例分析

*本文原创作者:davichi8282,本文属FreeBuf原创奖励计划,未经许可禁止转载

0×00概述

近期审计HadSky5.5.2.20180525最新版的时候发现配置文件写入导致的代码执行问题,刚开始审计的时候发现这套cms功能点真的很少,而且使用框架过滤的方式,传统注入xss问题很难发现,还有以往在审计cms安装时候是否存在配置文件任意写入问题的时候我是直接全局搜索是否存在install.lock这个文件的,假如存在就直接跳过这个问题,install.lock这个文件是安装锁文件,当安装成功的时候就“锁定”以免重装,配置文件写入等问题的发生。但是由于这套cms功能点实在不多,重新仔细看了下安装的时候是否存在安全问题,结果发现存在配置文件写入导致的代码执行问题。

0×01 白盒审计

源码信息: HadSky5.5.2.20180525

问题文件: \upload\install\php\install.php

漏洞类型:配置文件写入导致getshell

站点地址:https://www.hadsky.com/

cms安装过程一般会分为几个步骤来完成,具体代码段为\upload\install\index.php

ad9586c0bb988edd1467c6406dd3b563.png

可以看到总共五个步骤来进行安装,每一步程序将会引用一些文件进行操作,但是由于install.lock文件的存在我们并不能写入恶意代码到配置文件里,所以刚开始我也直接过了这部分,但是仔细一看红圈部分,程序是在case等于4的时候也就是第四步的时候锁定程序的,具体代码段为/php/complete.php

2b3378467fed18a69995651705d592b6.png

也就是当通过GET方式获取的chkcode参数值为”HadSkyInstallComplete”的时候锁定程序的,也就是和之前写入配置文件的过程是分开的,两个数据包,也就是会导致配置文件恶意写入问题。

具体写入的代码段为/php/install.php

2c61183d7dc53ca691d468b658d21c38.png

0×02 漏洞利用

首先进行安装到第三步,截图如下;

02c122b39a720528bea2124c22fac7f8.png

这里的数据库地址,用户,密码等都是通过用户输入的,我们先输入正确的账号密码信息之后点击下一步并且抓包,截图如下;

cc86db0c8d1b9e36d687378580272a00.png

可以看到显示成功安装,但是这里的成功安装是步骤三的成功安装,还不是完全成功安装,此时还没生成安装锁文件,这里就是我们可利用的点,下一个数据包第四步才会锁定程序,具体截图为;

ea11f0c6c60db57b26ce0e6884f07010.png

这里才会生成安装锁文件并且锁定程序,第三步的数据包我们可以写入恶意代码;

我们以mysql_prefix这个前缀参数进行利用,由于代码段我们看到是使用单引号括起来的,所以需要先闭合之后使用注释符”//”注释掉后面的分号,具体payload为

mysql_prefix=';phpinfo();//

1c6914bf389f7b4053846e9519ec06b6.png

这时候我们访问这个配置文件,路径为;

http://127.0.0.1/HadSky5.5.2.20180525/upload/puyuetian/mysql/config.php

程序未对配置文件访问进行限制,可直接访问;

714dcdcf5c8d855cc602409c1edfd096.png

成功getshell了。

还有一种方法是把我们的payload带入进行完整的安装,可使用其他POST字段,这里使用mysql_charset字段,安装成功之后访问首页如下;

cc4dae6e095b4ee93f0348f75a920688.png

0×03 总结

其实这个漏洞是由于安装的时候未在合适的位置进行锁定文件导致的,可以把第四步锁定文件写入到第三步里面,也就是写入配置文件的同时锁定程序,还有写入配置文件之前需要进行数据库连接测试就不会出现此问题了。

*本文原创作者:davichi8282,本文属FreeBuf原创奖励计划,未经许可禁止转载返回搜狐,查看更多

责任编辑:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值