利用 TP-Link Archer CR-700 路由器。(已负责任地向 TP-Link 披露)
步骤 1-> 在你的 Linux 机器(Kali 或 Ubuntu)上输入以下命令
gedit /etc/dhcp/dhclient.conf
注释掉下面这一行 #send host-name = gethostname();
将其复制到下一行,并把 gethostname() 函数改为类似下面的 XSS 脚本。
send host-name = "<script>alert(5)</script>";
步骤 2:重启你的 Linux 系统,使更改生效。
步骤 3:使用以下命令向路由器发送 DHCP 请求,以获取 IP 地址。(可在任何使用 TP-Link Archer CR-700 的开放网络路由器上尝试)
dhclient -v -i wlan0
运行上述命令时,它会向路由器发送 DHCP 请求。在 DHCP 请求中,主机名会被发送出去,而我们已将其强制设置为 XSS 脚本 <script>alert(5)</script>
步骤 4:登录管理员控制台。
登录时脚本就会执行。
我在该路由器上发现的另一个问题是,它没有 CSRF 令牌。路由器设置的 cookie 中包含 base64 编码的用户名和密码,这些信息可以通过 XSS 脚本窃取。
注意:以上所有信息均已披露给 TP-Link,他们已重现该问题,并将其移交给研发团队进行修复。
产品 URL https://www.amazon.com/Wireless-Certified-Cablevision-Archer-CR700/dp/B012I96J3W