如何在Chrome DevTools中追踪JS生成的密文?

问题描述 投票:0回答:1

我正在使用 TP-Link wifi 路由器设置开放 VPN。但是有一个愚蠢的限制,它只允许端口 1024 到 65535。我试图覆盖路由器的配置,但不熟悉 HTML 和 JS 操作过程,所以我需要一些帮助。

我发现当我设置端口时,网站会向这个URL发送请求: https://tplinkwifi.net/cgi-bin/luci/;stok=XXXX91f39b5b0d08d44177249d26XXXX/admin/openvpn?form=config ,有效负载:

标志: XXXX533e31a404dcbb1b8d27c1e72f5b69bb052eddfc6f6d9a6376ca7c925867a03271a8943b5ab976014bfbae8cedde88b8c1286c7b8e1d9e4ec9cda1c0 XXXX

数据: XXXXrCx4fBmktIRjayY3oy9yNPbR+pZXTi1mt6hKn21Dy0pBpVaFoJ2mSEorp8A4c+x1eFEAe0GCZpKp4i9qqEWI/orsua9v90L+e963dqN/WnZyA6k288lphEM6SsB6 jFHBIyOCNKjgU1WCPQMWdjn3F6WFiKdHeGLZMrBqy6xgtAy+Qw+aAn54tLDNXXXX

在发送请求之前,没有其他请求。我可以这样认识到,sign 和 data 的值是由 Javascript 在本地创建的吗?如果是这样,则与端口号等设置有关。如果我可以分析这些值是如何创建的,我就可以绕过限制并尝试进行端口 443 配置并发送请求。

我尝试阅读后面的Javascript,但它太复杂了。是否可以追踪这个加密值是如何生成的?谢谢!

我尝试解码这些类似 Base64 的值,但看不到纯文本。 HTML结构复杂,包裹很深,我不知道如何追踪动作过程,也不知道这个值是怎么出来的。

javascript html console analysis
1个回答
0
投票

辛苦了一晚上,我尝试了一下:

分析JavaScript代码后,我发现加密函数被封装在jQuery中。使用 jQuery 对象应用该函数并对 Chrome devtools 中 JavaScript 分析得到的明文进行编码:

url = "https://192.168.0.1/cgi-bin/luci/;stok=XXXX6ff74d538ab3be198260400fXXXX/admin/openvpn?form=config";

x = jQuery.su.encryptor.dataEncrypt("operation=write&enabled=on&wan=&proto=tcp&port=443&serverip=10.10.0.0&mask=255.255.255.0&connection=10&access=internet&cert_exist=true");

body = new URLSearchParams(x).toString();

headers = {"Content-Type": "application/x-www-form-urlencoded"};

fetch(url, {method:"POST", headers:headers, body:body}).then(x=>x.text()).then(x=>console.log(x));

上述脚本可以使用明文as命令来设置VPN配置。不幸的是,它没有通过后端验证。当我通过1024~65535范围内的端口时,就成功了。但到了443端口,就完全没有变化了

我想我已经回答了我自己的问题。但是我仍然无法覆盖 TP-link Wi-Fi 路由器的 VPN 配置。

© www.soinside.com 2019 - 2024. All rights reserved.