致远啊 发表于 2024-1-30 17:39

某些知识库文档密码破解

## 某文档一

浏览某技术文档时,发现此文档需要验证码,而验证码需加入知识星球才能看到

!(https://testingcf.jsdelivr.net/gh/oddfar/static/PaChong/knowledge-document-password/image-20240130162551042.png)

于是先看看能不能破解咯,打开 `F12` ,先随便输入个验证码,看看是不是动态验证的

!(https://testingcf.jsdelivr.net/gh/oddfar/static/PaChong/knowledge-document-password/image-20240130163049644.png)

`XHR` 请求里有请求进行验证

!(https://testingcf.jsdelivr.net/gh/oddfar/static/PaChong/knowledge-document-password/image-20240130163254771.png)

根据此链接去打个断点看看

!(https://testingcf.jsdelivr.net/gh/oddfar/static/PaChong/knowledge-document-password/image-20240130163539524.png)

重新输入验证码发起请求,接着分析代码

!(https://testingcf.jsdelivr.net/gh/oddfar/static/PaChong/knowledge-document-password/image-20240130164617257.png)

这里很容易就知道,当 `s` 不等于 `i` 时代表验证码错误

我们只需要让 `s==i` 就可以

```javascript
if (st.log("md5Input", s),
        != i)
                throw new Error("验证码错误!")
```

打个断点,看看他俩值是多少

!(https://testingcf.jsdelivr.net/gh/oddfar/static/PaChong/knowledge-document-password/image-20240130165126579.png)

右上角继续执行

!(https://testingcf.jsdelivr.net/gh/oddfar/static/PaChong/knowledge-document-password/image-20240130165345895.png)

`i` 就是 XHR 请求返回数据中的字段 `description` 的值

`s` 就是 `y7.MD5(o).toString()` ,`o` 就是输入的验证码

!(https://testingcf.jsdelivr.net/gh/oddfar/static/PaChong/knowledge-document-password/image-20240130165501830.png)

我们只要把 `s` 的内容改成 `"e74eb4201f9376041508fc2219a125e2"` 就行了

作用域里直接替换就行了

!(https://testingcf.jsdelivr.net/gh/oddfar/static/PaChong/knowledge-document-password/image-20240130165859942.png)

接着继续执行,提示文档解锁成功

!(https://testingcf.jsdelivr.net/gh/oddfar/static/PaChong/knowledge-document-password/image-20240130165945166.png)

> 固定返回内容

验证码可能会定期更换,我们也可以更改接口的返回内容,这样就不用担心更换

使用一款拓展程序:`Requestly: Open Source HTTPs Debugging Proxy`

!(https://testingcf.jsdelivr.net/gh/oddfar/static/PaChong/knowledge-document-password/image-20240130170659207.png)

添加一个 Modify API Response(修改API响应)的规则

直接返回我们自己想要的

!(https://testingcf.jsdelivr.net/gh/oddfar/static/PaChong/knowledge-document-password/image-20240130170914271.png)



## 某文档二

浏览另一平台的文档,也是需要验证码

!(https://testingcf.jsdelivr.net/gh/oddfar/static/PaChong/knowledge-document-password/image-20240130171129733.png)

随机输入一个验证码后,没有网络请求,可以断定验证码在本地

!(https://testingcf.jsdelivr.net/gh/oddfar/static/PaChong/knowledge-document-password/image-20240130171244981.png)

停用缓存,重新刷新网页,搜索关键字:`解锁验证码有误`

!(https://testingcf.jsdelivr.net/gh/oddfar/static/PaChong/knowledge-document-password/image-20240130171915651.png)

去分析下代码

!(https://testingcf.jsdelivr.net/gh/oddfar/static/PaChong/knowledge-document-password/image-20240130172037482.png)

根据这块代码意思就是

输入框 `id="unlockCode"` 的值和 `e` 比较,存在也就是 `>= 0` 就设置 `Cookies` 否则就是验证码错误

所以 `e` 就是密码

!(https://testingcf.jsdelivr.net/gh/oddfar/static/PaChong/knowledge-document-password/image-20240130172612910.png)

这个输入框也正好是 验证码 的输入框

!(https://testingcf.jsdelivr.net/gh/oddfar/static/PaChong/knowledge-document-password/image-20240130172845583.png)

鼠标放过去就知道了密码

!(https://testingcf.jsdelivr.net/gh/oddfar/static/PaChong/knowledge-document-password/image-20240130172958720.png)

T4DNA 发表于 2024-1-30 17:51

买不起服务器belike

Light紫星 发表于 2024-1-31 09:33

这个md5对应的明文是 bwerug

zzz1233456 发表于 2024-1-30 17:51

感谢分享真的太强了 !

玲玲骰子按红豆 发表于 2024-1-30 18:26

好厉害,还能这样弄

shenyejuwonatu 发表于 2024-1-30 18:33

挺好挺好 用得到

慕浟佳〃井少年 发表于 2024-1-30 18:54

这是什么知识库还能跟知识星球联动起来?

致远啊 发表于 2024-1-30 19:02

慕浟佳〃井少年 发表于 2024-1-30 18:54
这是什么知识库还能跟知识星球联动起来?

也没和知识星球联动,只不过是在知识星球里获取验证码

慕浟佳〃井少年 发表于 2024-1-30 19:03

致远啊 发表于 2024-1-30 19:02
也没和知识星球联动,只不过是在知识星球里获取验证码

我还以为是全自动的

hxcnull6 发表于 2024-1-30 19:26

牛哇 这个解决了 我的痛点

mediacenter 发表于 2024-1-30 19:32

可以,现在为了推广公众号真的有点烦。
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: 某些知识库文档密码破解