在一次日常的渗透测试信息收集过程中,笔者发现了一个看似正常的网站。

然而,通过进一步检查,发现该站点已存在蜘蛛劫持现象。

通过模拟搜索引擎蜘蛛访问,可以确认该网站已被黑客攻陷,植入了寄生虫页面。

出于技术研究的目的,笔者决定对该站点的沦陷过程进行复盘分析。
初步尝试了扫描常见后台路径、爆破弱口令等手段,均未发现有效的突破口。端口扫描结果显示,服务器仅开放了宝塔面板端口、22端口(SSH)以及80端口(Web)。

突破点往往隐藏在意想不到的地方。在对网站静态资源进行梳理时,一个JavaScript文件中的异常URL请求引起了笔者的注意。

进一步分析该JS文件,发现了一个关键信息。

文件内容中明确包含了路径 public/webuploader/0.1.5/。

回顾历史漏洞,Webuploader组件确实存在已知的Getshell漏洞。通过搜索引擎可以找到相关的漏洞细节与POC,其核心是利用Base64编码绕过过滤进行文件上传。此处不再赘述POC详情。

在确认目标组件版本存在漏洞后,直接使用公开的POC进行测试。

攻击成功,成功获取Webshell权限。

登录服务器后,确认了该站点被用于寄生虫SEO。出于网络安全研究伦理,笔者在记录相关现象后便删除了木马文件。
至此,入侵路径似乎已经清晰。然而,在分析网站源码结构时,又发现了一个更隐蔽的问题。

网站中存在一个看似用于图片处理的接口,文件名以 ****img 结尾。直接下载该文件。

下载后发现,这并非图片文件,而是一个文本文件。服务器虽然设置了 Content-Type 为图片类型,但实际返回了文件内容。

这本质上是一个未授权的前台文件读取漏洞。通过Burp Suite等抓包工具修改请求参数,即可轻松验证。

尝试读取服务器上的其他文件,验证漏洞的有效性。

利用成功,可以读取任意文件内容。此功能设计存在严重缺陷,疑似开发者有意或无意留下的后门。
至此,在一次由组件漏洞引发的Getshell事件分析中,意外地额外发现并验证了一个独立的前台任意文件读取0day漏洞。
|