首页 > 其他分享 >【JS漏洞】挖掘

【JS漏洞】挖掘

时间:2025-01-04 23:22:53浏览次数:1  
标签:数据包 接口 js 漏洞 测试 挖掘 JS 泄露

最近在研究怎么从JS中挖掘更多有用信息,以前在漏洞挖掘的时候没有对js进行细致的挖掘利用,在研究小程序调试解密的时候发现js文件中可获取信息的点、可挖掘漏洞的点还是很多的,花了一段时间积攒了一些漏洞场景,就有了这篇文章了~~有覆盖不全的场景或者其他挖掘方向和挖掘思路,请大佬补充

一、信息泄露

开发人员在开发测试阶段方便进行测试,会将一些测试账号信息、云端存储桶密钥、平台appid/appsecret等信息存储于js文件中,通过对js文件进行分析提取获取可利用的泄露信息,以下分享一些在漏洞挖掘中遇到的此类场景的利用手法:

1.1 测试账号泄露

之前测试发现,开发人员在系统开发过程中为了方便登录测试系统会将测试账号及密码以注释的形式保存在代码中。在测试过程中可以用泄露的账号密码尝试系统登录,或者固定泄露的密码对账号进行爆破。

那如何发现泄露的账号密码?可以先触发一个登录的数据包,获取包里用户名参数,再到浏览器去搜索该参数是否存在对应测试账号泄露,如图:

当然也有可能登录界面参数和原测试环境参数有不同,所以我梳理了常见的登录账号参数名:username、user、userId、usid、uid、id、name、phone、account、userAccount、mail。密码的话,参数一般为pass、password、pwd、passwd。

1.2 AK/SK泄露

开发人员将云服务器AK/SK信息保存在js代码中,可以通过泄露信息完成对云服务器的接管。

1.3 appId/appSecret 泄露

在小程序js中泄露当前小程序的appId和appSecret,可利用工具通过appId和appSecret生成access_token,获取小程序用户信息、列表信息等,微信官方的说明文档已关闭小程序接口调试功能。推荐一下利用工具API-Explorer,现已支持微信公众号、微信小程序、企业微信、钉钉、飞书等平台的appId/appSecret接管功能,有其他需求评论区提。(工具下载链接见文末)

1.4 JWT密钥泄露

在js代码中搜索jwt,查找代码前后文是否存在jwtKey泄露,或尝试登录等操作获取一个jwtToken通过JWT密钥爆破可以爆破并构造用户cookie,以下是jwtToken工具具体利用方式如下:

1.5 小程序SessionKey泄露利用

在之前写过的一篇sessionKey漏洞发掘到漏洞利用的文章中已对该漏洞进行过漏洞挖掘复现,登录授权处系统申请获取微信授权,微信端返回用户会话密钥sessionKey,利用该密钥可对用户授权数据包进行加解密。

1.6 mapKey泄露

mapkey用于第三方网站调用显示及高德地图api进行定位、获取地理标签等服务,网站管理员注册申请的key值,并在系统对地图授权处调用key获取信息,由于地图API后台配置错误,导致ak泄露可以滥用,该mapkey每日调用存在使用上限,滥用会导致地图加载异常。

1.7 内网信息泄露

部分系统在开发过程中存在内网ip地址泄露,若当前系统存在SSRF漏洞,则可利用该漏洞遍历内网信息。

二、接口发现

在js文件中存在开发人员接口配置信息,包含:接口名、参数设置,利用接口配置信息尝试构造数据包,进行漏洞测试。

2.1 文件上传接口

代码处搜索upload获取文件上传接口,利用脚本构造文件上传数据包对该接口进行文件上传测试:

2.2 未授权接口

提取网站js文件中的接口信息,构造数据包测试未授权漏洞(工具下载链接见文末):

2.3 已废弃接口

版本更新后未使用但仍存在于代码中的接口,此类接口在系统中无对应功能按钮,但接口本身通过数据包构造仍可正常请求后台信息。例如在登录处,老系统存在注册接口,由于监管标准变更停止使用注册接口的功能按钮,但本身接口数据调用仍可正常实现。还有就是一些比较老的系统在开发之初,代码仅通过账号或账号密码校验,然后在系统漏洞整改过程中重构了代码采用账号、密码、验证码校验,但原有的老校验接口仍未删除,导致可以通过遍历接口来构造登录:

2.4 根据开发习惯fuzz接口

啊咧~这个其实来源于平时测试过程中的积累以及gpt使用经验。在批量对未授权接口进行发现过后,可以根据系统的类型来进行接口参数fuzz,例如金融保险行业的合同单号、保单号,在下载接口有遇到没有做随机数重命名的或者权限校验的,然后你可以根据保单编号尝试遍历一下或者根据规则生成一下,看能不能命中一个…就很随机才能遇到一个。

三、数据包解密

利用数据包加解密接口、参数名,定位数据包解密函数,进行断点调试。或者搜代码里诸如:AES、RSA、SM4、encrypt这些参数,然后全给打上断点,看访问流量往哪儿跑。但是有遇到那种登录处是一种加密方式、登进去是调用的其他的加密方式,可以去浏览器网络看具体调了那些js,再去js里面断点定位:

在加解密的时候要是遇到随机生成的key,尝试在生成之初就给js代码替换了,写定key,之后好方便生成加解密脚本。

四、工具汇总

工具时用时新,下面是我觉得好用的一些工具,有建议或其他需求github跟一灯师傅提,有需要的自行下载哒~

AK泄露利用工具:

https://github.com/mrknow001/aliyun-accesskey-Tools

appId/appSecret泄露利用工具:

https://github.com/mrknow001/API-Explorer

SessionKey泄露利用工具:

https://github.com/mrknow001/BurpAppletPentester

原创 molin 千寻安服

标签:数据包,接口,js,漏洞,测试,挖掘,JS,泄露
From: https://www.cnblogs.com/o-O-oO/p/18652754

相关文章

  • #渗透测试#漏洞挖掘#WAF分类及绕过思路
    免责声明本教程仅为合法的教学目的而准备,严禁用于任何形式的违法犯罪活动及其他商业行为,在使用本教程前,您应确保该行为符合当地的法律法规,继续阅读即表示您需自行承担所有操作的后果,如有异议,请立即停止本文章读。目录一、Waf分类软件型WAF硬件型WAF基于云WAF开源型WAF......
  • extJs做出的管理系统界面,除了风格老点丑点,其他的真没毛病
    extJs在制作管理系统界面方面确实有其独特优势。它有着丰富且成熟的组件库,能轻松搭建起功能完备的管理系统架构,无论是表单创建、数据展示还是交互操作等,都能高效实现,稳定性也相当出色,在应对复杂业务逻辑时表现良好。不过,在界面风格上,它相对传统、缺乏现代感,色彩搭配不够新颖,......
  • Vue3组件基础语法(js语法)
    Vue3组件(js语法)组件优点✨:1.提高代码复用率和可维护性2.提高开发效率3.提高代码可读性4.降低项目的复杂度定义组件1.创建组件单文件<template><div>我是自定义组件</div></template><scriptsetup></script><stylelang="scss"scoped></style>2......
  • JSP程序设计2656陕西乡村旅游网站设计【源码+讲解视频】
    项目包含:源码、参考论文、讲解视频、说明文档,部署录像运行环境:推荐jdk1.8开发工具:Eclipse、MyEclipe以及idea(推荐)操作系统:windows108G内存以上(其他windows)浏览器:GoogleChrome(推荐)、Edge、360浏览器;数据库:MySQL5.7;数据库可视化工具:NavicatPremium推荐)以及其他N......
  • 手撸在线json转excel工具
    js工具之json转excelhtml+js实现json数据转为excel,支持json数组转换,无差别json对象转换文章目录js工具之json转excel应用场景一、本工具能干什么?无脑模式数组模式二、源码用最简洁的方式写工具,上菜上菜2.如果你没有vue.min.js总结应用场景爬虫,网页数据抓取出来的......
  • Threejs开发指南(第六篇 游戏开发(孤军奋战))
    按照作者的初衷,基本上本书已经介绍完了所有的准备知识,本章我们介绍一个简单的Web3D游戏,并希望他能够给读者带来一些游戏设计和开发方面的灵感和经验。游戏开发是一个很有挑战性的话题,现代计算机游戏都设计的越来越庞大复杂,剧情跌宕起伏、装备不断升级、画质精彩绝伦,令人着迷,但......
  • 【JS逆向】爬虫必备hook脚本
    特别声明:本公众号文章只作为学术研究,不用于其它不法用途;如有侵权请联系作者删除。Hook是一种钩子技术,在系统没有调用函数之前,钩子程序就先得到控制权,这时钩子函数既可以加工处理(改变)该函数的执行行为,也可以强制结束消息的传递。简单来说,修改原有的JS代码就是Hook。Hook技......
  • 基于Java的springboot/SSM+vue.js+uniapp小程序的4S店车辆管理系统附带文章源码部署视
    文章目录前言详细视频演示具体实现截图后端框架SpringBoot前端框架Vue持久层框架MyBaits为什么选择我代码参考数据库参考测试用例参考源码获取前言......
  • 基于Java的springboot/SSM+vue.js+uniapp小程序的物流系统附带文章源码部署视频讲解等
    文章目录前言详细视频演示具体实现截图后端框架SpringBoot前端框架Vue持久层框架MyBaits为什么选择我代码参考数据库参考测试用例参考源码获取前言......
  • 基于Java的springboot/SSM+vue.js+uniapp小程序的线上历史馆藏系统附带文章源码部署视
    文章目录前言详细视频演示具体实现截图核心技术介绍后端框架SpringBoot前端框架Vue持久层框架MyBaits为什么选择我代码参考数据库参考测试用例参考源码获取前言......