OddFar's Notes OddFar's Notes
首页
  • Java-Se

    • Java基础
    • Java面向对象
    • Java常用类
    • Java集合框架
  • Java-Se进阶

    • JUC多线程
  • Java-ee

    • JavaWeb
  • SQL 数据库

    • MySQL
  • NoSQL 数据库

    • Redis
    • ElasticSearch
    • MongoDB
  • 数据库

    • MyBatis
    • MyBatis-Plus
  • Spring

    • Spring
  • 中间件

    • RabbitMQ
  • Git
  • Docker
  • Jenkins
AI
爬虫
  • Campus (opens new window)
  • 校园信息墙 (opens new window)
关于
归档
GitHub (opens new window)
首页
  • Java-Se

    • Java基础
    • Java面向对象
    • Java常用类
    • Java集合框架
  • Java-Se进阶

    • JUC多线程
  • Java-ee

    • JavaWeb
  • SQL 数据库

    • MySQL
  • NoSQL 数据库

    • Redis
    • ElasticSearch
    • MongoDB
  • 数据库

    • MyBatis
    • MyBatis-Plus
  • Spring

    • Spring
  • 中间件

    • RabbitMQ
  • Git
  • Docker
  • Jenkins
AI
爬虫
  • Campus (opens new window)
  • 校园信息墙 (opens new window)
关于
归档
GitHub (opens new window)
  • 某度翻译
  • 文档密码破解
    • 某文档一
    • 某文档二
  • 爬虫
zhiyuan
2024-01-30
目录

文档密码破解

# 某文档一

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

image-20240130162551042

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

image-20240130163049644

XHR 请求里有请求进行验证

image-20240130163254771

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

image-20240130163539524

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

image-20240130164617257

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

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

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

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

image-20240130165126579

右上角继续执行

image-20240130165345895

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

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

image-20240130165501830

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

作用域里直接替换就行了

image-20240130165859942

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

image-20240130165945166

固定返回内容

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

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

image-20240130170659207

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

直接返回我们自己想要的

image-20240130170914271

# 某文档二

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

image-20240130171129733

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

image-20240130171244981

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

image-20240130171915651

去分析下代码

image-20240130172037482

根据这块代码意思就是

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

所以 e 就是密码

image-20240130172612910

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

image-20240130172845583

鼠标放过去就知道了密码

image-20240130172958720

在 GitHub 上编辑此页 (opens new window)
最后更新: 2025/09/06, 15:09:00
某度翻译

← 某度翻译

Theme by Vdoing | Copyright © 2021-2025 oddfar | 冀ICP备20001094号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式