Allowlist bypass

Filter evasion on bound field names with case variants, Unicode homoglyphs, duplicate keys, or nested paths the binder still maps.

1분 분량2026년 10월 2일 업데이트florianamette기여자 1명
어시스턴트에게 묻기 (MCP)GitHub에서 편집

Context#

A naive server strips admin from the top-level object but not Admin, a homoglyph, or profile.admin. Parsers that last-wins on duplicate keys or merge nested objects can still set a protected field. This is a binder and parser interaction problem, not a new BOLA primitive on the id.

Theory#

JSON duplicate key rules, application/x-www-form-urlencoded repeated keys, and application/json with Content-Type tricks can change which value the framework reads. Each stack documents its own rules; the offensive work is to try the same logical key in every encoding the stack accepts.

Practice#

Resend the same logical field with case and nesting variants#

  • In a lab, rotate role, Role, profile[role], and nested {"profile":{"role":"admin"}} against the same update route and diff the stored object.

Tools#

  • Burp Suite
  • curl