时间:2022-7-8来源:本站原创作者:佚名
公益中国援助定点白癜风医院 http://m.39.net/disease/a_6169821.html
0x01前言在一次授权测试中对某网站进行测试时,marry大佬发现了一个网站的备份文件,里面有网站源代码和数据库备份等。根据网站信息和代码都可以发现该系统采用的是微擎cms,利用数据库备份中的用户信息解密后可以登录系统,接下来要看是否可以获取webshell。0x02WEBSHELL获取的尝试有了数据库备份文件,然后找一下是否有用户的信息,能否登录系统。1.登录后台解压备份文件可以从data/backup目录下找到数据库的备份,从中找到了用户表ims_users。知道了用户名、加密后的密码和salt,我们去看一下密码加密的算法。我这里直接搜索password,在forget.ctrl.php中找到了一处。密码加密方法是password=md5(password.member_info[salt]._W[config][setting][authkey]);。是根据原密码+salt+authkey的形式进行拼接,然后进行md5加密。authkey在data/config.php文件中。现在salt和authkey以及加密后的密码已经获得,开始去解密密码是多少。这里我们将salt和authkey拼接为新的salt,然后使用md5(pass.salt)的加密方式进行解密。解密后即可登录后台。接下来就是webshell的获取了。本以为都已经是管理员了,获取shell就是分分钟的事,然而事情远远没有那么简单。2.失败的获取shell过程根据搜索发现,该cms后台获取shell的方法也不少,主要还是围绕执行sql这里。但我这里都失败了,就简单的提一下。第一种方法:站点管理-附件设置-图片附件设置-支持文件后缀,任意添加一个类型,例如添加pppppp。然后执行sql语句

UPDATEims_core_settingsSETvalue=replace(value,pppppp,php)更新缓存,之后就可以上传"*.php"文件了。但是有限制,适用于apache下,而且版本有限制。目标站不使用该方法的原因有二,一是该系统上传的位置是腾讯云COS上,二是server是Tengine。第二种方法:第二种方法也是和sql执行有关,利用日志文件写shell。

showvariableslike%general%;#查看配置setglobalgeneral_log=on;#开启generallog模式setglobalgeneral_log_file=/var/
转载请注明原文网址:http://www.coolofsoul.com/cksc/cksc/24239.html

------分隔线----------------------------