Web攻防--JS算法逆向--断点调试--反调试&&代码混淆绕过

这篇具有很好参考价值的文章主要介绍了Web攻防--JS算法逆向--断点调试--反调试&&代码混淆绕过。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Web攻防--JS算法逆向--断点调试--反调试&&代码混淆绕过

JS算法逆向

在进行渗透测试过程中,在一些功能点进行参数注入或者枚举爆破等过程中,会出现参数进行加密的情况,但是我们输入参数并不是加密状态,即便测试点存在漏洞也不可能测试成功,这时候便需要将所提交参数进行加密后在进行注入,针对JS应用我们可以采用JS断点调试的方法将加密算法逆向出来,再使用插件将加密后的参数进行注入

  • 代码全局搜索
    即将参数提交的网址、目录等关键字在开发者工具中进行搜索,再对JS源码进行分析,找出加密算法
  • 文件流程断点
    即查看登录数据包中所调用执行堆栈,文件执行流程为从下往上执行,选用其中可能存在加密过程的文件处进行断点调试
    Web攻防--JS算法逆向--断点调试--反调试&&代码混淆绕过
    添加断点后再继续提交参数,观察作用域处的参数加密状况进行判断参数是否已经加密,如果未加密则查看堆栈上方文件中作用域的情况,直到作用域中的参数加密之后,分析代码中是否存在加密函数,找到加密函数后追踪加密文件即可成功获取加密算法。
    Web攻防--JS算法逆向--断点调试--反调试&&代码混淆绕过

Web攻防--JS算法逆向--断点调试--反调试&&代码混淆绕过

Web攻防--JS算法逆向--断点调试--反调试&&代码混淆绕过

  • 代码标签断点
    右键审查功能点,在html代码中将标签进行子树修改和属性修改,再次运行功能点即可断点。其他步骤参考文件流程断点。
    Web攻防--JS算法逆向--断点调试--反调试&&代码混淆绕过
  • XHR提交断点
    选择数据包中关键url路径
    Web攻防--JS算法逆向--断点调试--反调试&&代码混淆绕过
    在源码的顶层文件夹中添加XHR断点关键url,再次运行功能点即可断点,其他步骤参考文件流程断点。
    Web攻防--JS算法逆向--断点调试--反调试&&代码混淆绕过

加密算法载入

将加密算法以及加密逻辑找出之后,将加密算法文件另存为。使用brupsuite插件JSEncrypt即可将参数运用在枚举过程中。
载入过程:

  • 下载phantomjs并设置环境变量
    phantomjs下载地址
  • brupsuite加载jsEncrypter插件
    jsEncrypter下载地址
    Web攻防--JS算法逆向--断点调试--反调试&&代码混淆绕过
    brupsuite出现此栏目即插件加载成功
    Web攻防--JS算法逆向--断点调试--反调试&&代码混淆绕过
    将加密算法文件拷贝至插件所在jar包同级目录
    Web攻防--JS算法逆向--断点调试--反调试&&代码混淆绕过
    修改phantomjs_server.js文件中的内容,将加密算法文件名称添加,以及编写算法运行逻辑
    Web攻防--JS算法逆向--断点调试--反调试&&代码混淆绕过
    在该目录下使用已经设置了环境变量的phantomjs.exe文件运行phantomjs_server.js文件
    Web攻防--JS算法逆向--断点调试--反调试&&代码混淆绕过
    查看brupsuite中插件连接是否成功,并进行测试
    Web攻防--JS算法逆向--断点调试--反调试&&代码混淆绕过
    将加密算法加载至枚举爆破过程中,使得枚举的参数在加密后再进行爆破。
    Web攻防--JS算法逆向--断点调试--反调试&&代码混淆绕过
    username字段成功加载算法进行枚举
    Web攻防--JS算法逆向--断点调试--反调试&&代码混淆绕过

JS反调试绕过

JS反调试,即禁用开发者工具,防止用户查看JS源码,保护敏感数据,防止分析代码。

  • 常见反调试方法
    键盘监听(F12)
    检测浏览器的高度插值
    检测开发者人员工具变量是否为true
    利用console.log调用次数
    利用代码运行的时间差
    利用toString
    检测非浏览器
  • 绕过方法
    • 禁用断点法
      该方法指将开发者工具上的禁用断点开关打开,禁用一切断点,这样自己也就不能断点调试了,不过可以看到源代码
      Web攻防--JS算法逆向--断点调试--反调试&&代码混淆绕过
    • 条件断点法
      即将代码中产生断点的语句添加前置条件。
      Web攻防--JS算法逆向--断点调试--反调试&&代码混淆绕过
    • 此处暂停法
      Web攻防--JS算法逆向--断点调试--反调试&&代码混淆绕过
    • 置空函数法
      即将产生debug的函数跟踪找到,在控制台处重新定义,使得函数不起作用。
      Web攻防--JS算法逆向--断点调试--反调试&&代码混淆绕过
    • 本地覆盖法
      这种方法与在文件上传前端检测绕过类似,即将网页所加载关键文件保存在本地,启用本地覆盖,这样浏览器在加载网页时会根据本地覆盖文件进行加载,将反调试函数所在文件以及相关引用文件找出,使用本地覆盖的方法将反调试函数及相关作用代码进行注释修改,即可绕过反调试功能
      在使用这种方法时要将断点功能禁用,否则浏览器加载网页文件将显示不全
      Web攻防--JS算法逆向--断点调试--反调试&&代码混淆绕过

JS代码混淆

JS文件在网页中可以被查看到,为了防止源码被调试,或者关键信息泄露,会对JS代码文件进行加密混淆。
常见的JS加密种类有:JJEncode AAEncode JSFuck,Sojson v4,Sojson v5,JSjiami v6 等
破解工具链接JSDec

ak/sk敏感信息泄露

在JS源码中,会泄露url、API信息,从而增加攻击面,如果部署了云服务,接口等服务,可能存在access key等关键信息,通过Pentestkit FindSomething Wappalyzer等浏览器插件可以收集JS代码中的信息,如password,key等,之后可以利用云利用工具上线云服务等

以上内容仅作学习,如有错误或瑕疵,欢迎批评指正,感谢阅读。文章来源地址https://www.toymoban.com/news/detail-685514.html

到了这里,关于Web攻防--JS算法逆向--断点调试--反调试&&代码混淆绕过的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • web逆向笔记:js逆向案例四 QQ音乐 sign值(webpack打包代码如何扣取)

    一、webpack介绍: ​ Webpack 是一个模块打包工具,主要用于 JavaScript 应用程序。它可以将许多模块打包成一个或多个 bundle,从而优化加载速度和减少加载时间。Webpack 可以处理各种资源,包括 JavaScript、CSS、图片、字体等,并且可以将其转换为浏览器可以理解的格式。 Webpack

    2024年04月25日
    浏览(50)
  • JS逆向实战13——某市公共资源交易中心Cookie混淆加密

    \\\"本文地址:https://www.cnblogs.com/zichliang/p/17346860.html 本文章中所有内容仅供学习交流,抓包内容、敏感网址、数据接口均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请联系我立即删除! 网站: aHR0cDovL2xkZ2d6eS5obmxvdWRpLmdvdi

    2023年04月24日
    浏览(71)
  • Webstorm + Egg.js 进行断点调试

    1、在工具栏找到编辑配置,创建已运行Node.js 应用程序的调试配置 2、debug调试配置 3、调试 4、查看断点是否起效

    2024年02月13日
    浏览(38)
  • WAF攻防-权限控制&代码免杀&异或运算&变量覆盖&混淆加密&传参

    webshell检测平台 https://scanner.baidu.com/#/pages/intro https://ti.aliyun.com/#/webshell 对比工具代码-菜刀蚁剑冰蝎哥斯拉等 对比WAF规则-函数匹配工具指纹等 1.php 传参带入 ?a=ass x=cGhwaW5mbygpOw== 2.php 变量覆盖 x=cGhwaW5mbygpOw== 3.php 加密变异 http://www.phpjm.net/ 4.php 异或运算 5.php 脚本生成器 Webshel

    2023年04月11日
    浏览(47)
  • 网页爬虫逆向与AST入门系列教程(四、AST的应用之代码混淆解析)

    前面的文章中,我们介绍了AST的基本概念、生成和可视化方法。在本篇中,我们将探讨AST在网页爬虫逆向中的另一个重要应用领域:代码混淆解析。 1. 代码混淆与反混淆 代码混淆是一种常见的技术,用于增加网页代码的复杂性和混淆程度,从而防止被不法分析者轻易地理解

    2024年02月11日
    浏览(50)
  • i茅台app逆向分析frida反调试

    i茅台 1.3.7 frida 14.2.17 安卓 9 系统 常规frida不注入任何脚本 这种情况就是有frida反调试,frida的反调试可以写在java层或者so层,搜罗网上的方法,比较 普遍的就是:使用葫芦娃版本的frida、改frida_server的名称,修改frida_server的端口,文章中的frida_server均已满足以上条件,情况比

    2024年02月12日
    浏览(51)
  • 7.JS里表达式,if条件判断,三元运算符,switch语句,断点调试

    表达式就是可以被求值的代码比如什么a = 1 语句就是一段可以执行的代码比如什么if else 直接给B站的黑马程序员的老师引流一波总结的真好 就是基本上所有的语言都会有的if else 语句就是满足不同的条件执行不同的代码,让计算机有条件判断的能力。 注意在if的括号里面除了

    2024年02月20日
    浏览(52)
  • Nike登录的acw_sc__v2参数逆向详细思路分析(非常简单,建议入手)含AST解混淆代码

    最近周末闲着无事,看了一下Nike的登录,发现连环境都不用补acw_sc__v2这个参数,分享出来给大家趣味性娱乐一下 打开F12抓包看看登录 老样子复制curl给抓到Postman里面去分析一下 具体的参数查找就不演示了(就是简单的删参数看看啥需要啥不需要)。 最后可以发现,cookie只

    2024年02月09日
    浏览(44)
  • 攻防世界-web-simple js

    题目描述:小宁发现了一个网页,但却一直输不对密码。(Flag格式为 Cyberpeace{xxxxxxxxx} ) 打开链接: 然后我们会发现不管我们输入什么密码,发现是都是这样的报错  1. 先用bp抓包看看 ,可以抓到这样的一串js脚本 看不懂没关系,我们试着将这串代码拷贝下来,运行下,将最后

    2024年02月03日
    浏览(37)
  • 移动安全面试题—调试&反调试

    Android反调试的几种手段 检测 TracerPid:在 /proc/self/status 文件中,TracerPid 字段表示调试进程的 PID。如果该值非零,则意味着当前进程被调试。 对抗方法:使用内核模块或 Xposed 插件拦截对 /proc/self/status 的读取,将 TracerPid 字段设置为 0。 检测调试端口:/proc/self/maps 文件中包含

    2024年01月19日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包