葫芦七查
首发公开专业的软件查询平台
关于“葫芦七查”?
专业查软件 就上葫芦七查 https://www.hulu7cha.com
本期内容:8篇越权技巧
推荐用户:开发商、供应商、监管单位、招标单位、程序运维人员、网络安全人员等
安全声明:本文分享文章不涉及漏洞详情、安全预警等,仅作技术分享。以下相关技巧仅可用作相关单位工作人员对管理或授权系统使用,若利用进行其他非法用途,自行承担相应法律后果。
小程序场景 对应的技巧
hulu7ch
第一期 内容一览
场景1:鉴权参为常规数值——递减数值;
场景2:多数为空的数值——intruder遍历;
场景3:无序序列的数值——取特殊值;
场景4:时间序列的数值——更改日期;
场景5:路径中存在数值——更改路径数值;
场景6:任意参数值通用1——参数值置空;【*】
场景7:POST请求数据的数据包——切换GET请求;【*】
场景8:任意参数值通用2——改为默认值;【*】
(注:每天将更新8篇,关注“葫芦七查”不迷路)
案例1
递减数值
场景
鉴权参为常规数值——递减数值
输出
形成原因:
鉴权参数(如随机数)被设计为可递减的数值,攻击者通过递减参数值绕过鉴权逻辑(如重放攻击或越权访问)。
修复方法:
1、后端校验参数有效性:增加时间窗口校验(如令牌有效期≤5分钟),拒绝过期或递减后的数值。
2、使用不可预测的令牌:采用UUID或加密签名替代纯数字参数,避免数值规律性。
3、限制参数修改权限:前端禁止用户直接修改鉴权参数,后端对参数签名进行二次验证。
案例2
intruder遍历
场景
大多数据为空的数值——intruder遍历;
输出
形成原因:
鉴权参数(如随机数)被设计为可递减的数值,攻击者通过递减参数值绕过鉴权逻辑(如重放攻击或越权访问)。
修复方法:
1、后端校验参数有效性:增加时间窗口校验(如令牌有效期≤5分钟),拒绝过期或递减后的数值。
2、使用不可预测的令牌:采用UUID或加密签名替代纯数字参数,避免数值规律性。
3、限制参数修改权限:前端禁止用户直接修改鉴权参数,后端对参数签名进行二次验证。
案例3
取特殊值
场景
无序序列的数值——取特殊值
输出
形成原因:
在程序初始情况下发现用常规数值存在安全问题,于是从某个数据起开始使用无序序列,但未对初始数据进行校正。
安全自查:将参数值取特殊值,如1,10,100等
修复方法:
1、引入有序标识:使用数据库自增ID或时间戳+随机数组合生成唯一且有序的序列。
2、哈希映射:将无序数值通过哈希算法映射为固定长度的唯一标识(如MD5或SHA-256)。
3、业务逻辑分离:将无序数值仅作为辅助字段,核心业务依赖有序主键。

案例4
更改日期
场景
时间序列的数值——更改日期;
输出
形成原因:
由于业务逻辑的特殊性,需要将编号设置为特定的格式,以便数据的处理的分析。
安全自查,观察参数值中是否存在特殊的序列(很多时候特殊序列藏在无序的一大串字符串中,需要去观察是否有2025xxxx,2024xxxx类似数字)
修复方法:
权限校验:后端验证用户ID与当前登录用户是否匹配,拒绝非法参数。
案例5
更改路径数值
场景
路径中存在数值——更改路径数值;
输出
形成原因:
URL路径中包含可变数值(如用户ID或资源ID),攻击者通过修改路径参数越权访问其他资源(如/user/123.html→/user/456.html等情况)
安全自查:对路径中的参数值进行安全检验(有时候会在路径的中间用数值,或者用200.html等形式)
修复方法:
1、权限校验:后端验证用户ID与当前登录用户是否匹配,拒绝非法路径参数。
2、路径参数白名单:仅允许特定格式的数值(如数字范围或正则表达式匹配)。
3、隐藏敏感路径:通过路由配置隐藏敏感接口,避免直接暴露路径参数。
案例6
参数值置空
场景
任意参数值通用——参数值置空;【*】
输出
形成原因:
接口参数未做非空校验,攻击者将参数值置空(如param=)导致程序空指针异常或逻辑漏洞。
修复方法:
1、默认值机制:为参数设置默认值(如空字符串或0),避免空值触发异常。
2、参数校验框架:使用如Hibernate Validator对参数进行@NotNull或@NotEmpty校验。
3、异常捕获:在代码中增加try-catch块,捕获空值异常并返回友好提示。
案例7
切换GET请求
场景
POST请求数据的数据包——切换GET请求;【*】
输出
形成原因:
POST请求被错误地转换为GET请求(如前端代码错误或代理服务器配置问题),导致敏感数据暴露在URL中。
安全自查:获取数据的接口切换请求方法,copy url使用浏览器直接请求为GET请求方法,比切换请求头可能快一点
修复方法:
1、检查请求方法:后端强制校验请求方法(如if (request.getMethod() != POST)),拒绝非POST请求。
2、HTTPS加密:确保敏感数据通过HTTPS传输,避免GET请求参数泄露。
3、日志脱敏:对GET请求参数进行敏感信息脱敏(如密码替换为***)。
案例8
改为默认值
场景
任意参数值通用2——改为默认值; 【*】
输出
形成原因:
参数未正确传递或格式错误时,系统未处理导致默认值覆盖有效数据(如默认值覆盖用户自定义值)。
安全自查:改用默认值检验是否存在越权,常见的默认值有undefined等等
修复方法:
1、权限校验:后端验证用户ID与当前登录用户是否匹配,拒绝非法参数。
2、参数白名单:仅允许特定格式的数值(如数字范围或正则表达式匹配)。
#artContent h1{font-size:16px;font-weight: 400;}#artContent p img{float:none !important;}#artContent table{width:100% !important;}