WebSocket下渗透测试技巧与方法

WebSockets是一项先进的技术,通过在用户浏览器和服务器之间打开交互式通信会话,实现了全双工异步通信。这种技术的应用广泛,尤其在实时更新方面,大大减少了对服务器的频繁HTTP请求,成为Web程序中的热门选择。

图片[1]-WebSocket下渗透测试技巧与方法-山海云端论坛

在一次授权的APP渗透测试中,我们发现目标系统采用WebSocket作为客服系统的通信方式。

图片[2]-WebSocket下渗透测试技巧与方法-山海云端论坛

通过测试不同功能,我们成功捕获到了一个名为”upload”的WebSocket接口,

图片[3]-WebSocket下渗透测试技巧与方法-山海云端论坛

进一步发现其中存在任意文件上传漏洞。令人担忧的是,该漏洞允许攻击者通过使用”../../”控制上传文件夹,并且文件名没有经过后端处理,不受强制改名的限制。

图片[4]-WebSocket下渗透测试技巧与方法-山海云端论坛

测试环境的特征为Linux操作系统、nginx服务器,以及各种前端框架的组合。虽然我们尚未发现框架漏洞,也没有找到各个语言后端的后门,但WebSocket的任意文件上传漏洞为我们提供了攻击的突破口。

尽管考虑过通过上传HTML文件构造XSS攻击,

图片[5]-WebSocket下渗透测试技巧与方法-山海云端论坛

但是该站点采用了授权机制,限制了XSS的有效性。因此,我们决定利用上传功能,将文件位置定向至定时任务文件,从而实现服务器权限的获取。

利用过程:

  1. 控制文件上传位置到定时任务处

通过上传文件时的”../../../../../../../var/spool/cron/root”,我们成功将文件上传位置指向了定时任务目录。这为后续的攻击奠定了基础。

图片[6]-WebSocket下渗透测试技巧与方法-山海云端论坛
  1. 上传反弹Shell

接下来,我们上传了一个包含反弹Shell的文件,准备在服务器上执行我们的恶意操作。

图片[7]-WebSocket下渗透测试技巧与方法-山海云端论坛
  1. 监听反弹Shell

使用nc命令监听上传的Shell,静待一分钟,为服务器执行所需的操作争取时间。

图片[8]-WebSocket下渗透测试技巧与方法-山海云端论坛
  1. 成功获取Shell

最终,我们成功获取了服务器的Shell权限,从而打开了一扇通向系统内部的大门。

图片[9]-WebSocket下渗透测试技巧与方法-山海云端论坛

这次攻击案例凸显了WebSocket在安全性方面的弱点,尤其是任意文件上传漏洞的严重性。为了提高系统的安全性,我们建议对WebSocket接口进行深入审查,并及时修复潜在的安全隐患。同时,加强对用户上传文件的处理,限制上传路径和文件名,以有效防范类似攻击。

© 版权声明
THE END
喜欢就支持一下吧
点赞10 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容