代码审计:beescms 后台上传getshell复现
2022-10-28 15:19:56
373
{{single.collect_count}}

代码审计:beescms 后台上传getshell复现

beescms

BEESCMS企业网站管理系统,SEO优化更快,无功能限制,后台上手容易,各类行业模板供选择使用!全面支持手机网站,电脑手机模板标签全部通用,一个后台管理,电脑、手机网站同步更新。
官网:http://www.beescms.com/
下载:https://www.mycodes.net/49/9318.htm

代码审计

通过上一篇注入文章,我们拿到了管理员密码,登录后台,寻找上传点传shell文件。
在这里插入图片描述
打开Seay,来到admin/upload.php文件,找到上传函数。
在这里插入图片描述
检查了上传文件是否合法,实际上传用的是up_img函数,跟进函数。
在这里插入图片描述

if(!in_array(strtolower($file_type),$type)){msg('上传图片格式不正确');}

这里检查了上传文件的type,如果type不在白名单里,就直接提示出错,我们可以修改文件类型绕过。

$up_file_name=empty($pic_alt)?date('YmdHis').rand(1,10000):$pic_alt;$up_file_name2=iconv('UTF-8','GBK',$up_file_name);$file_name=$path.$up_file_name2.'.'.$pic_name['extension'];

从上面可以看出,并没有做任何检查就直接取了$file[‘name’](就是我们上传时候的文件名)的后缀来给新生成的文件。
所以我们只要伪造合法的type就能上传shell文件。

上传getshell

来到上传点,上传shell文件抓包,修改type类型为image/png,即图片类型绕过。
在这里插入图片描述
在这里插入图片描述
蚁剑连接一句话php文件即可。
在这里插入图片描述

回帖
全部回帖({{commentCount}})
{{item.user.nickname}} {{item.user.group_title}} {{item.friend_time}}
{{item.content}}
{{item.comment_content_show ? '取消' : '回复'}} 删除
回帖
{{reply.user.nickname}} {{reply.user.group_title}} {{reply.friend_time}}
{{reply.content}}
{{reply.comment_content_show ? '取消' : '回复'}} 删除
回帖
收起
没有更多啦~
{{commentLoading ? '加载中...' : '查看更多评论'}}