某fishcms 背景存在恣意文件删除+getshell | 申博官网
登录
  • 欢迎进入申博官网!
  • 如果您觉得申博官网对你有帮助,那么赶紧使用Ctrl+D 收藏申博官网并分享出去吧
  • 这里是申博官方网!
  • 申博官网是菲律宾sunbet官网品牌平台!
  • 申博开户专业品牌平台!

某fishcms 背景存在恣意文件删除+getshell

申博_安全防护 申博 110次浏览 未收录 0个评论

媒介

这两天挑了款 cms 审计了一下。照样 tcl ,没审计出甚么很厉害的洞。分享一下挖的思绪

某fishcms 背景存在恣意文件删除+getshell

破绽剖析

找了一圈症结字,找到一处:

背景的删除幻灯片处:

某fishcms 背景存在恣意文件删除+getshell

我们看到有一句:

@unlink(APP_PATH . '..'. DS . $yfile);

$yfile 是哪里来的呢?

$yfile = str_replace($yuming['option_value'],'',$slide['slide_pic']);

$slide 是从数据库里查出来的。

暂时跳一下,跳到 增加幻灯片 处。看看我们的 slide_pic 是怎样加进去的。

某fishcms 背景存在恣意文件删除+getshell

能够看到是获取了 slideshow 这个参数。这里并没有任何搜检

我们再跳回 removeSlide 这个函数。

我们会发如今 unlink 前有个 if

if(!empty($yfile) && $this->isLegalPicture($slide['slide_pic'])){

没错,isLegalPicture 这个函数就是搜检函数,这个函数也许做了两件事:

  1. 推断文件名后缀是不是为图片(白名单
  2. 推断文件名是不是带有 /data/

这里第二个前提,是要 dirname 含有 /data/,不克不及是 /data/a.jpg ,但能够是 /data/a/a.jpg

如今晓得变量泉源了,我们再精简一下代码,把症结代码剪出来:

$yfile = str_replace($yuming['option_value'],'',$slide['slide_pic']);
if($this->isLegalPicture($slide['slide_pic'])){
@unlink(APP_PATH . '..'. DS . $yfile);
}

没错,这里最大的题目就是 isLegalPicture 的传参 和 unlink 的传参不一致。

我们会发明上面有个 str_replace,他会把 $yuming['option_value'] 替换成

那末我能不克不及让 $yuming['option_value'] 酿成一些特别的值呢?

那末这个器械是甚么呢?这玩艺儿实在就是。

某fishcms 背景存在恣意文件删除+getshell

这里修正虽然前端有限定,然则挡不住我们全能的 bp(后端没有限定)。

如今我们就能够想一想怎样利用了:

  1. 修正幻灯片为 /data/b/111.jpgapplication/install.lock/data/b/111.jpg
  2. 修正 站点域名/data/b/111.jpg
  3. 删除指定幻灯片

删除时把 /data/b/111.jpg 替换为空,就是 application/install.lock 了。

破绽复现

起首 上岸背景,输入账号密码后能够会显现这个:

某fishcms 背景存在恣意文件删除+getshell

CVE-2015-0057内核漏洞分析及利用

漏洞概述 CVE-2015-0057是影响Windows XP到Windows 10(预览版)的Windows内核漏洞,而造成该漏洞的函数是win32k!xxxEnableWndSBArrows 函数。win32k!xxxEnableWndSBArrows 函数在触发 user-mode callback 后,执行完相应操作后从用户层返回到内核层,对接下来操作的对象未能验证其是否已经释放(更改),而继续对其进行操作,从而导致UAF。 漏洞分析 在win32k!xxxEnableWndSBArrows函数中通过xxxDrawScrollBar函数层层的函数调用最后调用KeUserModeCallback函数返回到用户层执行,从用户层返回到内核层执行时导致UAF。这个漏洞会导致write操作,可以修改相邻的对象。这个漏洞利用scrollbar对象,然后通过一个新的对象(大小相同)替换释放的对象,新对象的header可以被后面的修改。通过对代码跟踪看出在xxxDrawScrollBar中进入用户模式,如果在用户模式将tagWND对象中的pSBInfo结构释放,在返回内核模式后没有对pSBInfo进行判断,会继续执行后面的代码。pSBInfo是tagWND对象中偏移0xb0的数据。在psbInfo存储滚动条的相关信息,定义的结构如下:漏洞的利用思路就是在 win32k!xxxEnableWndSBArrows 函数执行到关键代码之前,触发某个函数回调,用户可以控制这个函数回调,假设这个函

然则这里过滤不严,我们能够直接接见:/admin/Index/web.html

(起首我们要先抓到 修正幻灯片 和 删除幻灯片的包,由于我们修正了站点域名以后 jscss 会直接加载不出来。。。)

体系设置 => 网站信息 的包,然后 domain 参数改成:/data/b/111.jpg

某fishcms 背景存在恣意文件删除+getshell

此时的 options 表:

某fishcms 背景存在恣意文件删除+getshell

然后 修正幻灯片 的数据包中,把 slideshow 改成:/data/b/111.jpgapplication/install.lock/data/b/111.jpg

某fishcms 背景存在恣意文件删除+getshell

某fishcms 背景存在恣意文件删除+getshell

用方才抓到的删除包 repeater 一次就好了:

某fishcms 背景存在恣意文件删除+getshell

这时候我们再看的 application 目次就已删掉了。然则若是我们想写 shell 我们还得把 application/.htaccess 删掉。

我们把 id=2 的 幻灯片改成图片:/data/b/111.jpgapplication/.htaccess/data/b/111.jpg

这里就不截图了。

删除以后:

某fishcms 背景存在恣意文件删除+getshell

然后我们就能够重新安装了:

某fishcms 背景存在恣意文件删除+getshell

这里我们不晓得服务器的 mysql 账号密码的话,能够需要将 数据库服务 的地点修正成收集上的,也能够是本身的 vps
然后把 数据库名 修正成:',eval($_GET[1]),'
其他的一般填,下一步。。

某fishcms 背景存在恣意文件删除+getshell

看看 application/database.php 文件:

某fishcms 背景存在恣意文件删除+getshell

某fishcms 背景存在恣意文件删除+getshell

总结

审了良久,也许是履历不太够(太菜),只审出了一个 laji 洞。

总结一下这个洞,也许就是通报的参数分歧致使的,现实开辟中照样不克不及太大意,包管参数的一致。


申博|网络安全巴士站声明:该文看法仅代表作者自己,与本平台无关。版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明某fishcms 背景存在恣意文件删除+getshell
喜欢 (0)
[]
分享 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址