tplink发包登录及获取hostinfo
本帖最后由 Su. 于 2025-7-18 10:27 编辑## 分析
!(data/attachment/forum/202507/18/101500qzmommt5et5t3m45.png)
登录路由器后台,开发者工具可以看到,一直在发请求,前面请求网址相同,均为`192.168.0.1/stok=${stok}/ds`,不同的只是载荷
挨个点开发现,参数设置为`{"hosts_info":{"table":"online_host"},"method":"get"}`即可获取到hostinfo
没有看到携带cookie,因此判断只需要stok即可获取信息
!(data/attachment/forum/202507/18/101536htb199bjht00jm0g.png)
点击退出,打上任意xhr断点,进行一次登录操作,停在了`h.send(a.hasContent && a.data || null);`
鼠标放到a.data上,显示出值为`"{"method":"do","login":{"password":"字符串"}}"`
!(data/attachment/forum/202507/18/101638vc0tnhnftqchwtnn.png)
放行,同样没有cookie
!(data/attachment/forum/202507/18/101758ujviorjtsusfilss.png)
推测只需破掉密码加密就可以进行发包登录
再来一次登录,在右边堆栈挨个找下去,定位到r函数
!(data/attachment/forum/202507/18/101959xip398rljpvliq5i.png)
此处a为明文密码
!(data/attachment/forum/202507/18/102037rqdddhieacaiddhh.png)
因此orgAuthPwd即为加密函数,定位一下位置,找到
!(data/attachment/forum/202507/18/102102a5mr5o5wc1s0ed6l.png)
直接把这两个函数粘下来,去控制台手动对密码加密,得到结果与之前a.data加密后一样,至此,登录参数成功搞定
(其实,多登陆几次,会发现,每次password是一样的,也可直接复制字符串,也能实现发包登录)
!(data/attachment/forum/202507/18/102636zghi5ih7ypyy7vx7.png)
## 获取hostinfo
用登录返回的stok,配合上前面的参数设置`{"hosts_info":{"table":"online_host"},"method":"get"}`即可获取到hostinfo
## 代码实现
这个编辑器代码格式有点乱,发了个脚本,在[这里](https://scriptcat.org/zh-CN/script-show-page/3834/code)
## 注意
不同型号的tplink路由器的加密代码可能不同,我这里用的是TL-XDR3010易展版,因此贴个简单的教程,如果登录请求的密文不会变的话,也可以直接用来发包,如果会变,就需要去逆一下了
页:
[1]