文章总结: 本文发布ParamX插件,旨在解决未授权测试中参数缺失难题。插件基于JS静态分析,利用正则提取文件中的对象属性及函数参数等,支持一键构造JSON或GET数据包用于Fuzz。通过定位接口所在JS提取全量参数并回显测试,可有效扩大攻击面,提升漏洞挖掘效率。 综合评分: 92 文章分类: 安全工具,WEB安全,渗透测试
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 构造插件》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论