跳到主要内容

🎉常见加固web方案和破解思路【重点】

提示

这些希望一个一个的搜一搜,因为每一个分类扩展开都是一本书的知识量,因此,遇到哪个学哪个才是正确的学习方案,这是事整理了一下的。

方案

  1. 代码混淆: 目的:通过改变变量名、函数名、字符串等,使得代码难以阅读和理解。 常见工具:UglifyJS, Terser, Closure Compiler等。
  2. 资源加密: 目的:对关键资源(如JavaScript文件、图片等)进行加密,只有在运行时解密。 常见工具:Webpack的Code Splitting, Rollup的Dynamic Imports等。
  3. 反爬虫技术: 目的:防止自动化爬虫工具抓取数据。 常见技术:验证码(CAPTCHA)、动态加载内容、频率限制等。
  4. 反调试技术: 目的:检测调试环境,阻止在调试状态下运行。 常见技术:检测window.debugger、使用performance.now()检查时间差等。
  5. 动态加载: 目的:延迟加载关键代码或资源,增加分析难度。 常见技术:异步加载、懒加载、Web Workers等。
  6. 域名混淆: 目的:使用随机或模糊的域名来隐藏真正的资源位置。 常见技术:CDN服务、动态DNS等。
  7. 代码完整性校验: 目的:防止篡改,确保代码的完整性和一致性。 常见技术:使用哈希校验、数字签名等。

破解思路

  1. 代码混淆破解: 方法:使用反混淆工具,如Deobfuscator、Babel等。 示例:使用Deobfuscator插件解析混淆后的代码。
  2. 资源加密破解: 方法:分析加密算法和解密逻辑,手动实现解密过程。 示例:使用Burp Suite或Fiddler抓取加密资源,分析请求和响应中的加密数据。
  3. 反爬虫技术破解: 方法:使用代理IP、模拟浏览器行为、自动化工具等。 示例:使用Python的Scrapy框架自动处理验证码。
  4. 反调试技术破解: 方法:禁用或模拟调试环境标志,使用无头浏览器或虚拟机。 示例:使用Headless Chrome或PhantomJS运行网站。
  5. 动态加载破解: 方法:使用抓包工具捕获动态加载的资源,分析请求和响应数据。 示例:使用Burp Suite或Wireshark抓取动态加载的资源。
  6. 域名混淆破解: 方法:通过DNS查询工具定位实际的服务器IP地址。 示例:使用nslookup或dig查询域名对应的IP地址。
  7. 代码完整性校验破解: 方法:修改校验逻辑或绕过校验步骤。 示例:使用浏览器开发者工具修改JavaScript代码,禁用完整性校验。

示例:

代码混淆使用谷歌的插件Deobfuscator,又或者babel在线工具直接反混淆

资源加密破解一般情况用自动化工具分析监听AJAX即可

动态加载破解一般是抓包

最常用的就是babel的在线工具,直接反混淆