wuxin0011`blog wuxin0011`blog
首页
  • 基础内容

    • HTML
    • CSS
    • JavaScript
  • 进阶

    • JavaScript教程
    • ES6 教程
    • Vue
    • React
    • Typescript
    • Git
  • 推荐阅读
  • java随笔
  • JVM (opens new window)
  • 分类
  • 标签
  • 归档
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
  • git使用
  • docker部署项目
  • 错误收集
  • github-start
  • background-color
  • live-server
  • vscode-cpp-config
  • tampermonkey-script (opens new window)
  • leetcode-tool (opens new window)
  • 网站
  • 前端
  • 后端
  • Github Topic (opens new window)
GitHub (opens new window)

wuxin0011

懂得越多,懂得越少
首页
  • 基础内容

    • HTML
    • CSS
    • JavaScript
  • 进阶

    • JavaScript教程
    • ES6 教程
    • Vue
    • React
    • Typescript
    • Git
  • 推荐阅读
  • java随笔
  • JVM (opens new window)
  • 分类
  • 标签
  • 归档
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
  • git使用
  • docker部署项目
  • 错误收集
  • github-start
  • background-color
  • live-server
  • vscode-cpp-config
  • tampermonkey-script (opens new window)
  • leetcode-tool (opens new window)
  • 网站
  • 前端
  • 后端
  • Github Topic (opens new window)
GitHub (opens new window)
  • 静态前端项目密码破解

    • 前言
      • 演示
        • 普通前端网站密码获取
        • 模块化打包后项目密码获取
      • 说明
      • 前端
      • 前端随笔
      wuxin0011
      2023-06-29
      目录

      静态前端项目密码破解

      # 前言

      摘要

      在网络上查资料老铁们都知道,有时候搜索到一个感觉还不错的项目,想了解详情或者体验更多功能,这个时候弹出一个二维码要注xxx 公众号,其实大多数人是很反感的,因为这些公众号全部都是广告,跟个营销号差不多。但是如果你想继续体验,没办法只好掏出手机微信扫一扫 🙄。

      思考

      这个时候你需要思考密码或者验证码是不是写死的 ,其实大多数情况下是写死的 ,为什么?

      • 关注公众号的目的是为了推流(100%)
      • 要实现动态二维码发送到微信公众号才能获取成本不小,也比较麻烦,既然只是一个个人网站或者是一个演示项目 ,这么做肯定时不划算的(90%+)。

      # 演示

      # 普通前端网站密码获取

      找ID

      通过找到对应Id,然后前文检查 使用该Id地方,如果没有到引用js地方找

      找ID

      如果找不到请找引用 js ,排除一些肯定不是的 比如常见库文件,比如这个就是引用方式

      find

      找 js 引用,经过检索,这个最有可能

      找密码

      密码

      所以这弹窗密码是 coke

      # 模块化打包后项目密码获取

      模块化打包项目后的文件可读性十分差的,也没有办法通过 上面直接查找方式直接获取。

      这个时候需要从提示信息方面获取,不管是 Vue 还是 React 打包后的项目,提示信息是唯一的。

      比如输入验证码错误后会提示 验证码错误之类,通过错误信息获取验证码字段,然后检索找到。

      错误信息提示

      无从下手

      其实仔细观察,下面 el-xxx 结尾的都是 element 打包后的js文件,肯定跟密码无关。

      找错误信息,发现打包将中文提示信息全部转换为 unicode 编码,所以需要将 错误信息转换为 unicode 编码。

      在浏览器中将 验证码不能为空 字段转换为 unicode 编码

      var verificationCode = "验证码不能为空";
      
      // 将人机验证字符串转换为 Unicode
      var unicodeString = Array.from(verificationCode).map(function(char) {
        return "\\u" + char.charCodeAt(0).toString(16);
      }).join("");
      
      console.log(unicodeString);
      // \u9a8c\u8bc1\u7801\u4e0d\u80fd\u4e3a\u7a7a
      
      1
      2
      3
      4
      5
      6
      7
      8
      9

      经过几次筛选找到字段信息了

      find-info

      全文检索 找到错误信息这个js文件中 , 其实也在这个文件中。比如上面通过错误信息找到验证码字段为 code

      code

      当 S.code === E && N() ,字段信息上面都能看到 ,画横线懂得都懂,将获取之后验证码保存到浏览器本地中(因为下次访问还需要通过这个字段验证)

      因为 E = "yunai",函数 N() 是保存验证码的,只有 S.code === E 才会执行保存密码函数 N()

      所以字段 code = "yunai"

      # 说明

      以上仅供学习🤣

      编辑 (opens new window)
      #密码
      上次更新: 2025-06-05, 08:31:31
      最近更新
      01
      vscode配置c++环境
      05-04
      02
      LeetCode刷题工具之本地对拍
      04-04
      03
      sublime对应语言模板使用技巧
      02-28
      更多文章>
      Theme by Vdoing | Copyright © 2020-2025 wuxin0011 | MIT License
      • 跟随系统
      • 浅色模式
      • 深色模式
      • 阅读模式