新手php代码审计之beescms

admin 2023年3月12日22:15:07评论58 views字数 1362阅读4分32秒阅读模式

这段时间一直在恶补php的基础知识,为后续代码审计做准备。今天决定先小试牛刀一下,在星球大牛的建议下,准备拿beescms练练手,顺便写了这篇文章记录一下。

新手php代码审计之beescms

先简单了解一下这套cms

BEES企业网站管理系统是一个基于PHP+Mysql架构的企业网站管理系统。BEES采用模块化方式开发,功能强大灵活易于扩展,并且完全开放源代码,多种语言分站,为企业网站建设和外贸提供解决方案,我们见到的很多中小型站点仍在使用这套cms。

废话少说,掏出我的phpstorm直接开审。

后台文件上传getshell

既然要审代码那肯定先找能getshell的洞,这种我一般比较喜欢文件上传类。

代码审计找文件上传的点 一般找下面这些点

$_FILES, type="file", 上传 ,move_upload_file()等

新手php代码审计之beescms

找到fun.php

发现上传函数只对文件类型进行了限制

新手php代码审计之beescms

我们可以看到这块对于上传文件是有两处过滤点的,第一处就是文件大小,第二处是文件类型,当然第一个无所谓,我们追踪文件类型。

全局搜索up_img。

新手php代码审计之beescms

找到admin/upload.php。

新手php代码审计之beescms

这里限制了文件类型,也就是说我们满足规定的文件类型就能实现绕过。

抓包上传文件。

新手php代码审计之beescms

成功解析

新手php代码审计之beescms

虽然现在绕过了,但是是后台文件上传,不太好利用,继续审计看能不能再扩大危害。

前台登录处sql注入getshell

将目光转到登陆处

新手php代码审计之beescms

按照平常黑盒测试的经验 随手在用户名admin后面加个单引号

新手php代码审计之beescms

感觉有戏  转到白盒看代码

/admin/login

新手php代码审计之beescms

先追踪fl_html和fl_value函数

新手php代码审计之beescms

fl_value函数将我们传入的user参数使用正则表达式将一些常见的sql注入敏感字符替换为空

fl_html是将传入的参数进行html实体编码

新手php代码审计之beescms

绕过fl_value函数只需要对字符进行双写进行绕过

fl_html对单引号转换有要求 默认情况只对双引号进行编码

再追踪到check_login函数

新手php代码审计之beescms

直接将参数传入数据库进行查询 这里由于前面过滤不严格可以绕过导致sql注入

成功注入

新手php代码审计之beescms

但是我们的最终目的是getshell 尝试写文件

新手php代码审计之beescms

这里看到htmlspecialchars函数对马子进行了转义 尝试转将马子编码绕过

先考虑的的是hex编码,但是编码后还是不能写入,再尝试写绝对路径,折腾

了很久还是以失败告终,表哥们可以自己本地复现一下。

新手php代码审计之beescms

变量覆盖导致的用户登录绕过

既然此路不通,那就再换一条路。继续看后台登陆的代码,

先看到admin.php,发现在文件头包含了init.php,跟踪到init.php。

新手php代码审计之beescms

可以看到,是用is_login函数进行检查。

新手php代码审计之beescms

找到is_login函数。

新手php代码审计之beescms

这个判断登录的逻辑是只要判断_SESSION['login_in']==1并且_SESSION['admin']有值,然后$_SESSION['login_time']大于3600,就判断为已经登录。

执行payload

新手php代码审计之beescms

然后再访问/admin/admin.php,成功登录后台。

新手php代码审计之beescms

这个漏洞结合后台文件上传就可以构成一个危害比较大的任意getshell。

ps:这套cms还是存在不少的漏洞,对于我这样的新手来说,已经完全够练手用的,整套审计下来也比较轻松。还是希望自己再努力努力,早日审计出自己的0day。最后祝师傅们新年快乐!!!



原文始发于微信公众号(LK安全):新手php代码审计之beescms

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年3月12日22:15:07
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   新手php代码审计之beescmshttp://cn-sec.com/archives/1598382.html

发表评论

匿名网友 填写信息