Git仓库:
https://github.com/gongfuxiang/shopxo
简介:
两天攻防中,某政局内网横向发现多网段服务器,该服务器搭建了ShopXO商城系统(后来发现是开发临时搭建的,准备做二开用的)。结果花了30来秒审了个垃圾Day拿下该服务器,本文就是给新手提供思路(没交cnvd,懒)。
0x01、历史nDay漏洞探测:
别问,问就是谷歌(百度也行,大型CMS更建议谷歌,配合团队漏洞库):
注:优先看能getShell的nDay漏洞
该nDay漏洞利用流程简介:
1、后台弱口令->应用管理->应用商店下载主题(随便一个,default_static_ 目录下放置webshell)
2、后台->网站管理->主题管理->上传主题zip安装(根据安装后显示的图片路径推测webshell路径)
实际环境中该CMS为最新版本,经复测该漏洞已修复,php落地失败!!!
0x02、代码审计0Day
1、审原漏洞修复是否可绕过
1.1、通过关键词检索功能点函数
因为懒,所以直接在git上审代码,新手建议下载源码搭建后,边审代码边调试。
-
当前项目代码中查找:
repo:gongfuxiang/shopxo
-
关键词:
主题、upload、zip、php(猜测有过滤php这个字符串,不是检索php文件的意思)
-
最终检索语句:
repo:gongfuxiang/shopxo 主题 upload zip php
1.2、根据函数名以及备注推测,应该是这个函数:
1.3、跟进查看进入函数function ThemeUploadHandle:
1.4、跟入上传处理function ThemeUploadHandle:
1.5、因默认配置,不会解析类似php3等存在,这个时候问题来了,是否通过可以通过.user.ini、.htaccess文件进行绕过,这时候才注意到有做排除:
2、代审其他功能点:
根据功能点看到有个上传插件的功能,我赌它的枪里没有子弹!
2.1、通过关键词检索功能点函数
-
当前项目代码中查找:
repo:gongfuxiang/shopxo
-
关键词:
插件、upload、zip
-
最终检索语句:
repo:gongfuxiang/shopxo 插件 upload zip
2.2、上传插件功能点:
2.3、跟踪入上传处理function UploadHandle:
2.4、路由懒得审,怎么办?
- 1、根据压缩包路径、源码路径结构相互结合推测路径;
- 2、根据插件自带php的功能点抓包路径,推测同路径下webshell路径;
- 3、一般插件,会写成class,寻找原插件包中namespace,php文件会放入其中;
- 4、支持多平台的cms,app路径下的php文件一般可直接访问,不需要路由;
完美符合我的小技巧,直接成功访问http://xxxxx/app/plugins/newuserreduction/admin/phpinfo.php
注:只是小技巧,不是万能的,路径不对就得耐心审路由