ParamX插件发布|基于JS静态分析的参数提取与Fuzz构造插件

admin 2025-12-23 01:44:36 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文发布ParamX插件,旨在解决未授权测试中参数缺失难题。插件基于JS静态分析,利用正则提取文件中的对象属性及函数参数等,支持一键构造JSON或GET数据包用于Fuzz。通过定位接口所在JS提取全量参数并回显测试,可有效扩大攻击面,提升漏洞挖掘效率。 综合评分: 92 文章分类: 安全工具,WEB安全,渗透测试


cover_image

ParamX 插件发布 | 基于 JS 静态分析的参数提取与 Fuzz 构造插件

原创

庆尘

Daylight庆尘

2025年12月22日 18:31 重庆

01

背景

在未授权的测试时,最关注的其实就是四个地方

  • 路由
  • 接口
  • 参数

这几步,都有对应的一个测试方法和流程,但是很多时候不是靠测试流程就能解决的,比如缺少参数,或者缺少值,虽然也有对应的方法,但不一定弄得出来(就像我手里就有一堆成年累月积攒的缺少参数或者缺少值的站点),未授权倒在这两步,其实是最可惜的,只能记录下来期待后续能找到对应的突破口。

我也一直在想办法应对这种参数或值缺失的站点,比如建立团队内部参数键值对的wiki公开查询,wiki分为各个src,依靠团队成员提交键值对获取贡献值,贡献值可用于在wiki查询键值对。这样的机制来积累各个src的键值对fuzz库,但这也是一个长期的过程,短时间内效果微弱。

由于平时接触JS比较多,就想到了一个用于解决缺少参数的点,JS中是存在大量的接口,参数等数据包特征信息。我们平时接口找参数也是定位到js中接口所在的位置,但很多时候接口的参数并没有跟接口在一块,但大概率是在一个js文件里面的(%80以上),所以我就想可不可以从js中全量提取参数,于是我编写了这个插件,用来匹配js中各种参数的写法,正则适配如下

  • 对象属性名
  • 解构变量
  • 嵌套解构
  • 函数参数
  • 变量赋值
  • API请求参数
  • URL参数
  • 配置对象
  • 路由参数

经过测试,已经能适配绝大部分场景

其余开发详情见下文

未授权接口构造思路拓展 | JavaScript中的参数提取实现与插件开发

02

安装

下载地址:

https://github.com/daydust/ParamX

适用:目前仅支持作为Googole插件安装,其他浏览器暂未适配

1、下载之后解压

2、Google访问chrome://extensions/,加载已解压的拓展程序,选择解压后的文件即可

03

使用

在未授权测试发现并构造出接口遇到缺少参数的情况时,常见的手法

  • 历史数据包泄露
  • 定位js中接口所在的代码块
  • 同源功能点参数
  • 参数fuzz——利用json多加参数不会报错的特性

以上手法失效时,可尝试使用本插件

1、定位到缺少参数的接口所在的js文件

tips:如果用的是findsomething捕获到的接口,可以直接右键对应接口,findsomething会自动复制,再左键点击箭头,直接追进接口所在的js文件

再ctrl+f。ctrl+v,回车就能直接定位到对应代码块了

里是随便找个js举个例子,这个接口可以看到是有标明参数的,我们正常演示插件即可,打开插件,点击提取参数

  • 如果是POST-JSON传参,就直接点构造json就行,会自动给所有参数值赋1,并改为json体格式
  • 如果是POST-键值对传参,就直接点击GET,全部放上去也行
  • 如果是GET请求,也是点击构造GET,但注意:GET传参有大小限制,基本只能支持小几百个参数,可以选择分批构造,或优先测试高优先级提取结果参数

构造参数fuzz之后观察响应即可,比如不带参数访问时,回显如下

携带构造好的参数访问时回显如下

说明我们构造的参数中,存在某个参数代表推荐人信息,且这个参数是接口所需参数。然后再去二分法找到这个参数,进行后续测试即可

04

tips

1、首次加载报错

首次加载后,点击提取出现该报错,是由于页面没有加载js,只需要刷新一下页面即可,后续就不会出现这个问题了

2、接口所在的JS文件内并不一定能100%搜到接口的参数!!!但90%以上是可以找到的(仅扩大了攻击面和测试效率)

3、接口如果在js文件,就定位到所在的js文件去提接口,有时候接口会在页面回显中,这时候就直接在页面提取参数就行了

05

结尾

最后,希望插件也能帮到各位师傅挖到越来越多的漏洞,要是挖到了能来报个喜和点点star就更好了

END

今天不打广告,nnnnnnn


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:Daylight庆尘 《ParamX 插件发布 | 基于 JS 静态分析的参数提取与 Fuzz 构造插件》

评论:0   参与:  8