一个非漏洞的历史

前一段时间,我有机会尝试使用一台普通路由器的设置。 事实是,四月一日迫使我扮演大学的同志。 该大学拥有Wi-Fi网络。 我决定在路由器上伪造一个网络(设置名称,密码并设置合法访问点之一的MAC地址),在笔记本电脑上启动自己的DNS和Web服务器。 每个不小心连接到我的网络并尝试访问任何站点的人都应重定向到带有愚人节图片的我的页面。 但是故事不是关于这个的。 当我浏览路由器的设置时,我发现了一个有趣的错误,今天我将告诉您。

图片

在设置阶段,路由器已连接到Internet。 但是由于某些原因,连接到Wi-Fi的设备无法接收Internet。 我明白了 路由器面板上有一个可以使用ping实用程序的选项卡,因此无法打开telnet(我希望所有读者都能理解telnet对外开放的危险吗?)。 表单如下所示:



此功能实现如下。 路由器程序从用户接收包含地址的字符串,然后将ping命令替换为调用字符串:

ping -c < > <> 

路由器如何检查包含地址的字符串? 正是这个问题浮现在我的脑海。 然后,我用&符号和ls命令代替。 我得到这个:



对于那些在坦克


在UNIX系统上,我们可以强制bash在后台执行命令,并在其后替换一个&号。 同时,我们可以在“&”号之后替换一个命令,该命令将与第一个同时执行。 我在这种情况下使用的是什么。 替换为“ 8.8.8.8&ls”,我得到了“ ping -c 3 8.8.8.8&ls”。 路由器同时执行ping和ls命令。 然后带来了结果。

如果此错误在其他地方允许,它将成为非常严重的威胁。 毕竟,这样的漏洞将帮助攻击者迫使路由器执行任何命令,甚至获得对设备的完全控制。 此类漏洞被分类为CWE-78(OS命令注入)

我没有坐着不动,我赶紧向制造商写信给发现的错误。 我详细描述了路由器的型号,固件版本和用于播放该错误的脚本。 我收到了一个有趣的答案:

图片
翻译(普通话)

您能否检查产品底部标签上的硬件版本?
我们没有牧师 Px。 您知道此设备的购买来源或购买地点吗?
事实证明,他们没有考虑我从俄罗斯写的东西。 该路由器的模型仅在我国发行。 信件以发送给我的新固件结尾,该固件消除了前一个固件的所有缺点,并增加了许多功能,但由于某种原因,它不在公共领域。

Source: https://habr.com/ru/post/zh-CN449376/


All Articles