文章总结: 本文详细列举了针对登录口JSON接口的多种模糊测试方法,涵盖基本凭证、数据类型变异、SQL注入、特殊字符及边界条件测试。尽管部分Payload可能无效,但这些手法旨在帮助安全人员理解接口解析逻辑,发现潜在解析异常或漏洞,以便在其他测试点进行验证。 综合评分: 80 文章分类: WEB安全,渗透测试,漏洞分析
登录口的json测试方法
T6 sec
T6 sec
2025年10月29日 16:40 广东
登录中的一些json测试方法,虽然可能挺多都无效,但是并不妨碍我们学习到测试手法,在别的点进行测试。
| 测试用例名称 | JSON 凭据 |
| — | — |
| 基本凭证 | {“login”:”admin”,”password”:”admin”} |
| 空凭据 | {“login”: “”, “password”: “”} |
| 空值 | {“login”: null, “password”: null} |
| 凭据作为数字 | {“login”: 123, “password”: 456} |
| 凭据作为布尔值 | {“login”: true, “password”: false} |
| 作为数组的凭据 | {“login”:[“admin”],”password”: [“password”]} |
| 凭据作为对象 | {“login”:{“username”:”admin”,”password”:{“password”:”password”}}} |
| 凭据中的特殊字符 | {“login”:”@dm!n”,”password”: “p@ssw0rd#”} |
| SQL 注入 | {“login”:”admin’–“,”password”: “password”} |
| 凭据中的 HTML 标记 | {“login”: “# admin”, “password”: “ololo-HTML-XSS”} |
| 凭据中的 Unicode | {“login”: “\u0061\u0064\u006D\u0069\u006E”, “password”: “\u0070\u0061\u0073\u0073\u0077\u006F\u0072\u0064”} |
| 带有转义字符的凭据 | {“login”:”ad\nmin”,”password”: “pa\ssword”} |
| 带有空格的凭据 | {“login”: ” “, “password”: ” “} |
| 过长值 | {“login”:”a”*10000, “password”: “b”*10000} |
| 缺少登录密钥 | {“password”: “admin”} |
| 缺少密码密钥 | {“login”: “admin”} |
| 交换的键值 | {“admin”: “login”, “password”: “password”} |
| 额外的钥匙 | {“login”: “admin”, “password”: “admin”, “extra”: “extra”} |
| 缺少冒号 | {“login” “admin”, “password”: “password”} |
| 作为凭据的布尔值无效 | {“login”: yes, “password”: no} |
| 所有键,无值 | {“”: “”, “”: “”} |
| 嵌套对象 | {“login”: {“innerLogin”: “admin”, “password”: {“innerPassword”: “password”}}} |
| 区分大小写测试 | {“LOGIN”:”admin”,”PASSWORD”: “password”} |
| 登录为数字,密码为字符串 | {“login”: 1234, “password”: “password”} |
| 登录为字符串,密码为数字 | {“login”: “admin”, “password”: 1234} |
| 重复键 | {“login”: “admin”,”login”: “user”, “password”: “password”} |
| 单引号而不是双引号 | {‘login’: ‘admin’, ‘password’: ‘password’} |
| 仅使用特殊字符的登录名和密码 | {“login”:”@#$%^&*”,”password”: “!@#$%^&*”} |
| Unicode 转义序列 | {“login”: “\u0041\u0044\u004D\u0049\u004E”, “password”: “\u0050\u0041\u0053\u0053\u0057\u004F\u0052\u0044”} |
| 值作为对象而不是字符串 | {“login”:{“$oid”: “507c7f79bcf86cd7994f6c0e”}, “password”: “password”} |
| 不存在的变量作为值 | {“login”: undefined, “password”: undefined} |
| 额外的嵌套对象 | {“login”: “admin”, “password”: “password”, “extra”: {“key1”: “value1”, “key2”: “value2”}} |
| 十六进制值 | {“login”: “0x1234”, “password”: “0x5678”} |
| 有效 JSON 后的额外符号 | {“login”:”admin”,”password”: “password”}@@@@@@} |
| 只有键,没有值 | {“login”:, “password”:} |
| 插入控制字符 | {“login”: “ad\u0000min”, “password”: “pass\u0000word”} |
| 字符串中的空字符 | {“login”: “admin\0” , “password”: “password\0”} |
| 指数数作为字符串 | {“login”: “1e5” , “password”: “1e10”} |
| 十六进制数字作为字符串 | {“login”: “0xabc” , “password”: “0x123”} |
| 数字字符串中的前导零 | {“login”: “000123” , “password”: “000456”} |
| 多语言输入(英语和韩语) | {“login”: “admin관리잔 , “password”: “passwordë¹ „밀번호”} |
| 超长键 | {“a”*10000: “admin” , “b”*10000: “password”} |
| 超长的 Unicode 字符串 | {“login”: “\u0061″*10000, “password”: “\u0062″*10000} |
| 带分号的 JSON 字符串 | {“login”: “admin;” , “password”: “password;”} |
| 带有加号的 JSON 字符串 | {“login”:”admin+”,”password”: “password+”} |
| 带等号的 JSON 字符串 | {“login”:”admin=”,”password”: “password=”} |
| 带有星号(*)符号的字符串 | {“login”:”admin*” , “password”: “password*”} |
| 长 Unicode 字符串 | {“login”:”\u0061″*10000,”password”: “\u0061″*10000} |
| 字符串中的换行符 | {“login”:”ad\nmin”,”password”: “pa\nssword”} |
| 字符串中的制表符 | {“login”:”ad\tmin”,”password”: “pa\tssword”} |
| 使用字符串中的 HTML 内容进行测试 | {“login”: “**admin”, “password”: “password”} |
| 字符串中的 JSON 注入 | {“login”: “{\”injection\”:\”value\”}”, “password”: “password”} |
| 使用字符串中的 XML 内容进行测试 | {“login”: “admin”, “password”: “password”} |
| 数字、字符串和特殊字符的组合 | {“login”:”ad123min!@”,”password”: “pa55w0rd!@”} |
| 浮点数作为字符串 | {“login”: “123.456”, “password”: “789.123”} |
| 作为语言组合的价值 | {“login”:”adminवà¥à¤à¤¸à¥à¤ ¥à¤¾à¤à¤”,”password”: “passwordà¤à¤¸à¤à¤à¤à¤à¤क”} |
| 字符串中的非 ASCII 字符 | {“login”:”∆admin∆”,”password”: “∆password∆”} |
| 单字符键和值 | {“l”: “a”, “p”: “p”} |
| 环境变量的使用 | {“login”: “${USER}”, “password”: “${PASS}”} |
| 字符串中的反斜杠 | {“login”:”ad\min”,”password”: “pa\ssword”} |
| 特殊字符的长字符串 | {“login”:”!@#$%^&*()”*1000,”password”: “!@#$%^&*()”*1000} |
| JSON 中的空键 | {“”: “admin”, “password”: “password”} |
| 密钥中的 JSON 注入 | {” {\”injection\”:\”value\”} “: “admin”, “password”: “password”} |
| 字符串中的引号 | {“login”:”\”admin\””,”password”: “\”password”} |
| 作为嵌套数组的凭据 | {“login”:[[“admin”]],”password”: [[“password”]]} |
| 作为嵌套对象的凭据 | {“login”:{“username”:{“value”:”admin”, “password”:{“password”: {“value”: “password”}}}} |
| 键作为数字 | {123: “admin”, 456: “password”} |
| 使用大于和小于符号进行测试 | {“login”:”admin>1″,”password”: “
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:T6 sec T6 sec《登录口的json测试方法》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论