🎉常见加固web方案和破解思路【重点】
提示
这些希望一个一个的搜一搜,因为每一个分类扩展开都是一本书的知识量,因此,遇到哪个学哪个才是正确的学习方案,这是事整理了一下的。
方案
- 代码混淆: 目的:通过改变变量名、函数名、字符串等,使得代码难以阅读和理解。 常见工具:UglifyJS, Terser, Closure Compiler等。
- 资源加密: 目的:对关键资源(如JavaScript文件、图片等)进行加密,只有在运行时解密。 常见工具:Webpack的Code Splitting, Rollup的Dynamic Imports等。
- 反爬虫技术: 目的:防止自动化爬虫工具抓取数据。 常见技术:验证码(CAPTCHA)、动态加载内容、频率限制等。
- 反调试技术: 目的:检测调试环境,阻止在调试状态下运行。 常见技术:检测window.debugger、使用performance.now()检查时间差等。
- 动态加载: 目的:延迟加载关键代码或资源,增加分析难度。 常见技术:异步加载、懒加载、Web Workers等。
- 域名混淆: 目的:使用随机或模糊的域名来隐藏真正的资源位置。 常见技术:CDN服务、动态DNS等。
- 代码完整性校验: 目的:防止篡改,确保代码的完整性和一致性。 常见技术:使用哈希校验、数字签名等。
破解思路
- 代码混淆破解: 方法:使用反混淆工具,如Deobfuscator、Babel等。 示例:使用Deobfuscator插件解析混淆后的代码。
- 资源加密破解: 方法:分析加密算法和解密逻辑,手动实现解密过程。 示例:使用Burp Suite或Fiddler抓取加密资源,分析请求和响应中的加密数据。
- 反爬虫技术破解: 方法:使用代理IP、模拟浏览器行为、自动化工具等。 示例:使用Python的Scrapy框架自动处理验证码。
- 反调试技术破解: 方法:禁用或模拟调试环境标志,使用无头浏览器或虚拟机。 示例:使用Headless Chrome或PhantomJS运行网站。
- 动态加载破解: 方法:使用抓包工具捕获动态加载的资源,分析请求和响应数据。 示例:使用Burp Suite或Wireshark抓取动态加载的资源。
- 域名混淆破解: 方法:通过DNS查询工具定位实际的服务器IP地址。 示例:使用nslookup或dig查询域名对应的IP地址。
- 代码完整性校验破解: 方法:修改校验逻辑或绕过校验步骤。 示例:使用浏览器开发者工具修改JavaScript代码,禁用完整性校验。
示例:
代码混淆使用谷歌的插件Deobfuscator,又或者babel在线工具直接反混淆
资源加密破解一般情况用自动化工具分析监听AJAX即可
动态加载破解一般是抓包
最常用的就是babel的在线工具,直接反混淆