想写文章的时候打开hexo的后台,发现样式炸了,登录也没反应,f12之后发现js在cdn上的资源无了😨

pVKOuZV.png

后台可以更换为其它cdn,但还是得先登录,绕进死胡同了

于是决定用post请求直接登录绕过前端,再去后台改


在html源码中找到登录按钮对应的事件

pVKOerq.png

定位到submit方法

pVKOZMn.png

记下请求内容与url


控制台直接post之后被csrf拦下😓需要加在请求头上


最终js代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
const USERNAME = "用户名";
const PASSWORD = "密码";

// 获取CSRF token
const csrfToken = document.querySelector('input[name="csrfmiddlewaretoken"]').value;

// 手动发起登录请求
fetch("/api/auth/", {
method: "POST",
headers: {
"Content-Type": "application/x-www-form-urlencoded",
"X-CSRFToken": csrfToken
},
body: `username=${encodeURIComponent(USERNAME)}&password=${encodeURIComponent(PASSWORD)}`
})

在控制台输入后回车,登录成功

pVKOmq0.png

成功登录后台,然而后台js也是崩的,改不了,但注意到里面还有unpkg和jsdelivr的cdn可以选

pVKXU6s.png

来到绑定qexo的MongoDB,将对应cdn地址的数据改为unpkg的url

pVKXaXn.md.png

pVKX000.jpg

再次刷新后台,成功

pVKXwmq.jpg