finecms 最新版v2.3.3前台getshell

文章目录

漏洞作者: phith0n

还是头像上传的地方,官方认为自己已经修复的很干净了,在我看来还是一点用处都没有。

不过demo站直接把头像上传的功能给阉割了,正常头像都没法上传了,所以我就不在demo上测试了,下载最新的v2.3.3,本地测试。

版本号:

051330547d2362aad5369e15f64ea7dd79dd3f09

 

 

看到头像上传的代码:

 

我曾经用的一个方法是,构造一个部分出错的压缩包,在解压时出现错误,导致exit,但已有部分文件已解压成功,这样就能不被后面的unlink删除。另一个方法是竞争型,再php没来得及删除我们解压出来的文件时,先访问它,让它生成一个shell。

我们看finecms里是怎么修复的:

1.用一个随机目录来保存图片,这样就算我成功解压出来,猜不到目录名也访问不了,也无法产生竞争:

 

2.删除以后再exit出去,这样就算出错,也会删除残留的文件后再退出:

看似已经万无一失。

但finecms没想到的是,我们可以构造一个“特别”的压缩包,这个压缩包里我的shell的文件名是“../../../shell.php”,这时我们就能够把shell直接解压到根目录下,我不用猜测目录名,不用惧怕被删除,直接拿下shell。

那么,请看我怎么构造这个压缩包。

漏洞证明:

先把自己的shell改名字成aaaaaaaaaaaaaaaaaaaa.php

之所以起这个名字,就是预留一些空间,方便我之后将文件名改成../../../aaaaaaaaaaa.php而不用怕字符串长度不对。

把文件直接打包成zip,用notepad++打开:

0513443380bf2b84a3e75f0c733537b3658116fe

 

 

将我画框的俩文件名的前9个字符改成../../../

05134540c4c5aa0d16dd8da020abce60a4781fe7

 

 

然后就大功告成。

注册用户,来到头像上传处,上传头像:

 

05134624ade8cca24810e85cf7dbf55de58296ca

 

 

抓包将刚才构造的压缩包贴进去:

 

05134725470d57f99e057512a67344691c8d301f

 

 

然后,网站根目录下就会有你的shell了:aaaaaaaaaaa.php

 

051348382425de0836824ccb14cbf25db98a8e47

原文链接:,转发请注明来源!

发表评论

要发表评论,您必须先登录