hacktricks/pentesting-web/parameter-pollution.md

20 KiB

Parameter Pollution | JSON Injection

Parameter Pollution

{% hint style="success" %} Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks
{% endhint %}

{% embed url="https://websec.nl/" %}

HTTP Parameter Pollution (HPP) Overview

HTTP Parameter Pollution (HPP) рдПрдХ рддрдХрдиреАрдХ рд╣реИ рдЬрд╣рд╛рдБ рд╣рдорд▓рд╛рд╡рд░ HTTP рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдмрджрд▓рддреЗ рд╣реИрдВ рдХрд┐ рд╡реЗ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдЕрдирдкреЗрдХреНрд╖рд┐рдд рддрд░реАрдХреЛрдВ рд╕реЗ рдмрджрд▓ рджреЗрддреЗ рд╣реИрдВред рдпрд╣ рд╣реЗрд░рдлреЗрд░ HTTP рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдЬреЛрдбрд╝рдиреЗ, рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдпрд╛ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдХрд░рдиреЗ рдХреЗ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрди рд╣реЗрд░рдлреЗрд░реЛрдВ рдХрд╛ рдкреНрд░рднрд╛рд╡ рд╕реАрдзреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗрддрд╛ рд▓реЗрдХрд┐рди рдпрд╣ рд╕рд░реНрд╡рд░ рд╕рд╛рдЗрдб рдкрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд░реВрдк рд╕реЗ рдмрджрд▓ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдХреНрд▓рд╛рдЗрдВрдЯ рд╕рд╛рдЗрдб рдкрд░ рдЕрд╡рд▓реЛрдХрдиреАрдп рдкреНрд░рднрд╛рд╡ рд╣реЛрддрд╛ рд╣реИред

Example of HTTP Parameter Pollution (HPP)

рдПрдХ рдмреИрдВрдХрд┐рдВрдЧ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЗрдирджреЗрди URL:

  • Original URL: https://www.victim.com/send/?from=accountA&to=accountB&amount=10000

рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд from рдкреИрд░рд╛рдореАрдЯрд░ рдЬреЛрдбрд╝рдиреЗ рдкрд░:

  • Manipulated URL: https://www.victim.com/send/?from=accountA&to=accountB&amount=10000&from=accountC

рд▓реЗрдирджреЗрди рдЧрд▓рдд рддрд░реАрдХреЗ рд╕реЗ accountC рдкрд░ рдЪрд╛рд░реНрдЬ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдмрдЬрд╛рдп accountA рдХреЗ, рдЬреЛ HPP рдХреА рдХреНрд╖рдорддрд╛ рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд▓реЗрдирджреЗрди рдпрд╛ рдЕрдиреНрдп рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛рдУрдВ рдЬреИрд╕реЗ рдкрд╛рд╕рд╡рд░реНрдб рд░реАрд╕реЗрдЯ, 2FA рд╕реЗрдЯрд┐рдВрдЧреНрд╕, рдпрд╛ API рдХреБрдВрдЬреА рдЕрдиреБрд░реЛрдзреЛрдВ рдореЗрдВ рд╣реЗрд░рдлреЗрд░ рдХрд░ рд╕рдХрддрд╛ рд╣реИред

Technology-Specific Parameter Parsing

  • рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдХреИрд╕реЗ рдкрд╛рд░реНрд╕ рдФрд░ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджреА рдЬрд╛рддреА рд╣реИ, рдпрд╣ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╡реЗрдм рддрдХрдиреАрдХ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ HPP рдХреЗ рд╢реЛрд╖рдг рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИред
  • Wappalyzer рдЬреИрд╕реЗ рдЙрдкрдХрд░рдг рдЗрди рддрдХрдиреАрдХреЛрдВ рдФрд░ рдЙрдирдХреЗ рдкрд╛рд░реНрд╕рд┐рдВрдЧ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреА рдкрд╣рдЪрд╛рди рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддреЗ рд╣реИрдВред

PHP and HPP Exploitation

OTP Manipulation Case:

  • Context: рдПрдХ рд▓реЙрдЧрд┐рди рддрдВрддреНрд░ рдЬрд┐рд╕рдореЗрдВ рдПрдХ рд╡рди-рдЯрд╛рдЗрдо рдкрд╛рд╕рд╡рд░реНрдб (OTP) рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА, рдХрд╛ рд╢реЛрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ред
  • Method: Burp Suite рдЬреИрд╕реЗ рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ OTP рдЕрдиреБрд░реЛрдз рдХреЛ рдЗрдВрдЯрд░рд╕реЗрдкреНрдЯ рдХрд░рдХреЗ, рд╣рдорд▓рд╛рд╡рд░реЛрдВ рдиреЗ HTTP рдЕрдиреБрд░реЛрдз рдореЗрдВ email рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдХрд┐рдпрд╛ред
  • Outcome: OTP, рдЬреЛ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдИрдореЗрд▓ рдХреЗ рд▓рд┐рдП рдерд╛, рдХреЛ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рд╣реЗрд░рдлреЗрд░ рдХрд┐рдП рдЧрдП рдЕрдиреБрд░реЛрдз рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рджреВрд╕рд░реЗ рдИрдореЗрд▓ рдкрддреЗ рдкрд░ рднреЗрдЬрд╛ рдЧрдпрд╛ред рдпрд╣ рджреЛрд╖ рдЕрдирдзрд┐рдХреГрдд рдкрд╣реБрдВрдЪ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЬреЛ рдХрд┐ рдЗрдЪреНрдЫрд┐рдд рд╕реБрд░рдХреНрд╖рд╛ рдЙрдкрд╛рдп рдХреЛ рджрд░рдХрд┐рдирд╛рд░ рдХрд░рддрд╛ рд╣реИред

рдпрд╣ рдкрд░рд┐рджреГрд╢реНрдп рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдмреИрдХрдПрдВрдб рдореЗрдВ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЪреВрдХ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдиреЗ OTP рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ email рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рд▓реЗрдХрд┐рди рд╡рд┐рддрд░рдг рдХреЗ рд▓рд┐рдП рдЕрдВрддрд┐рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред

API Key Manipulation Case:

  • Scenario: рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЙрдирдХреЗ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдкреГрд╖реНрда рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрдкрдиреА API рдХреБрдВрдЬреА рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
  • Attack Vector: рдПрдХ рд╣рдорд▓рд╛рд╡рд░ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рддрд╛ рд╣реИ рдХрд┐ POST рдЕрдиреБрд░реЛрдз рдореЗрдВ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд api_key рдкреИрд░рд╛рдореАрдЯрд░ рдЬреЛрдбрд╝рдХрд░, рд╡реЗ API рдХреБрдВрдЬреА рдЕрдкрдбреЗрдЯ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреЛ рд╣реЗрд░рдлреЗрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
  • Technique: Burp Suite рдЬреИрд╕реЗ рдЙрдкрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рд╣рдорд▓рд╛рд╡рд░ рдПрдХ рдЕрдиреБрд░реЛрдз рддреИрдпрд╛рд░ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рджреЛ api_key рдкреИрд░рд╛рдореАрдЯрд░ рд╣реЛрддреЗ рд╣реИрдВ: рдПрдХ рд╡реИрдз рдФрд░ рдПрдХ рджреБрд░реНрднрд╛рд╡рдирд╛рдкреВрд░реНрдгред рд╕рд░реНрд╡рд░, рдХреЗрд╡рд▓ рдЕрдВрддрд┐рдо рдШрдЯрдирд╛ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддреЗ рд╣реБрдП, API рдХреБрдВрдЬреА рдХреЛ рд╣рдорд▓рд╛рд╡рд░ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рдорд╛рди рдкрд░ рдЕрдкрдбреЗрдЯ рдХрд░рддрд╛ рд╣реИред
  • Result: рд╣рдорд▓рд╛рд╡рд░ рдкреАрдбрд╝рд┐рдд рдХреА API рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдкрд░ рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ, рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рдирд┐рдЬреА рдбреЗрдЯрд╛ рддрдХ рдЕрдирдзрд┐рдХреГрдд рдкрд╣реБрдВрдЪ рдпрд╛ рд╕рдВрд╢реЛрдзрди рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рдпрд╣ рдЙрджрд╛рд╣рд░рдг API рдХреБрдВрдЬреА рдкреНрд░рдмрдВрдзрди рдЬреИрд╕реА рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдореЗрдВ рд╕реБрд░рдХреНрд╖рд┐рдд рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИрдВрдбрд▓рд┐рдВрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ рдФрд░ рдЕрдзрд┐рдХ рдЙрдЬрд╛рдЧрд░ рдХрд░рддрд╛ рд╣реИред

Parameter Parsing: Flask vs. PHP

рд╡реЗрдм рддрдХрдиреАрдХреЛрдВ рджреНрд╡рд╛рд░рд╛ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ HTTP рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рднрд┐рдиреНрди рд╣реЛрддрд╛ рд╣реИ, рдЬреЛ HPP рд╣рдорд▓реЛрдВ рдХреЗ рдкреНрд░рддрд┐ рдЙрдирдХреА рд╕рдВрд╡реЗрджрдирд╢реАрд▓рддрд╛ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИ:

  • Flask: рдкрд╣рд▓реЗ рдорд┐рд▓реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдорд╛рди рдХреЛ рдЕрдкрдирд╛рддрд╛ рд╣реИ, рдЬреИрд╕реЗ a=1 рдПрдХ рдХреНрд╡реЗрд░реА рд╕реНрдЯреНрд░рд┐рдВрдЧ a=1&a=2 рдореЗрдВ, рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЙрджрд╛рд╣рд░рдг рдХреЛ рдмрд╛рдж рдХреЗ рдбреБрдкреНрд▓рд┐рдХреЗрдЯреНрд╕ рдкрд░ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджреЗрддрд╛ рд╣реИред
  • PHP (Apache HTTP Server рдкрд░): рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд, рдЕрдВрддрд┐рдо рдкреИрд░рд╛рдореАрдЯрд░ рдорд╛рди рдХреЛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджреЗрддрд╛ рд╣реИ, рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рдореЗрдВ a=2 рдХрд╛ рдЪрдпрди рдХрд░рддрд╛ рд╣реИред рдпрд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рдЕрдирдЬрд╛рдиреЗ рдореЗрдВ HPP рд╢реЛрд╖рдг рдХреЛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдмрдирд╛ рд╕рдХрддрд╛ рд╣реИ, рд╣рдорд▓рд╛рд╡рд░ рджреНрд╡рд╛рд░рд╛ рд╣реЗрд░рдлреЗрд░ рдХрд┐рдП рдЧрдП рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдореВрд▓ рдкрд░ рд╕рдореНрдорд╛рдирд┐рдд рдХрд░рддреЗ рд╣реБрдПред

Parameter pollution by technology

рдпрд╣ рдкрд░рд┐рдгрд╛рдо https://medium.com/@0xAwali/http-parameter-pollution-in-2024-32ec1b810f89 рд╕реЗ рд▓рд┐рдП рдЧрдП рд╣реИрдВред

PHP 8.3.11 AND Apache 2.4.62

https://miro.medium.com/v2/resize:fit:1100/format:webp/1*l_Pf2JNCYhmfAvfk7UTEbQ.jpeg

  1. рдкреИрд░рд╛рдореАрдЯрд░ рдирд╛рдо рдореЗрдВ %00 рдХреЗ рдмрд╛рдж рдХреБрдЫ рднреА рдирдЬрд░рдЕрдВрджрд╛рдЬ рдХрд░реЗрдВред
  2. name[] рдХреЛ рдПрд░реЗ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрднрд╛рд▓реЗрдВред
  3. _GET рдХрд╛ рдорддрд▓рдм GET рд╡рд┐рдзрд┐ рдирд╣реАрдВ рд╣реИред
  4. рдЕрдВрддрд┐рдо рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджреЗрдВред

Ruby 3.3.5 and WEBrick 1.8.2

https://miro.medium.com/v2/resize:fit:1100/format:webp/1*kKxtZ8qEmgTIMS81py5hhg.jpeg

  1. рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП & рдФрд░ ; рд╕реАрдорд╛рдВрдХрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред
  2. name[] рдХреЛ рдорд╛рдиреНрдпрддрд╛ рдирд╣реАрдВ рджреА рдЧрдИред
  3. рдкрд╣рд▓реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджреЗрдВред

Spring MVC 6.0.23 AND Apache Tomcat 10.1.30

https://miro.medium.com/v2/resize:fit:1100/format:webp/1*llG22MF1gPTYZYFVCmCiVw.jpeg

  1. POST RequestMapping == PostMapping & GET RequestMapping == GetMappingред
  2. POST RequestMapping & PostMapping name[] рдХреЛ рдорд╛рдиреНрдпрддрд╛ рджреЗрддреЗ рд╣реИрдВред
  3. рдпрджрд┐ name рдФрд░ name[] рджреЛрдиреЛрдВ рдореМрдЬреВрдж рд╣реИрдВ рддреЛ name рдХреЛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджреЗрдВред
  4. рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдЬреЛрдбрд╝реЗрдВ рдЬреИрд╕реЗ рдХрд┐ first,lastред
  5. POST RequestMapping & PostMapping рд╕рд╛рдордЧреНрд░реА рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рд╛рде рдХреНрд╡реЗрд░реА рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдорд╛рдиреНрдпрддрд╛ рджреЗрддреЗ рд╣реИрдВред

NodeJS 20.17.0 AND Express 4.21.0

https://miro.medium.com/v2/resize:fit:1100/format:webp/1*JzNkLOSW7orcHXswtMHGMA.jpeg

  1. name[] рдХреЛ рдорд╛рдиреНрдпрддрд╛ рджреЗрддреЗ рд╣реИрдВред
  2. рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдЬреЛрдбрд╝реЗрдВ рдЬреИрд╕реЗ рдХрд┐ first,lastред

GO 1.22.7

https://miro.medium.com/v2/resize:fit:1100/format:webp/1*NVvN1N8sL4g_Gi796FzlZA.jpeg

  1. name[] рдХреЛ рдорд╛рдиреНрдпрддрд╛ рдирд╣реАрдВ рджреА рдЧрдИред
  2. рдкрд╣рд▓реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджреЗрдВред

Python 3.12.6 AND Werkzeug 3.0.4 AND Flask 3.0.3

https://miro.medium.com/v2/resize:fit:1100/format:webp/1*Se5467PFFjIlmT3O7KNlWQ.jpeg

  1. name[] рдХреЛ рдорд╛рдиреНрдпрддрд╛ рдирд╣реАрдВ рджреА рдЧрдИред
  2. рдкрд╣рд▓реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджреЗрдВред

Python 3.12.6 AND Django 4.2.15

https://miro.medium.com/v2/resize:fit:1100/format:webp/1*rf38VXut5YhAx0ZhUzgT8Q.jpeg

  1. name[] рдХреЛ рдорд╛рдиреНрдпрддрд╛ рдирд╣реАрдВ рджреА рдЧрдИред
  2. рдЕрдВрддрд┐рдо рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджреЗрдВред

Python 3.12.6 AND Tornado 6.4.1

https://miro.medium.com/v2/resize:fit:1100/format:webp/1*obCn7xahDc296JZccXM2qQ.jpeg

  1. name[] рдХреЛ рдорд╛рдиреНрдпрддрд╛ рдирд╣реАрдВ рджреА рдЧрдИред
  2. рдЕрдВрддрд┐рдо рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджреЗрдВред

JSON Injection

Duplicate keys

obj = {"test": "user", "test": "admin"}

The front-end might believe the first ocurrence while the backend uses the second ocurrence of the key.

Key Collision: Character Truncation and Comments

рдХреБрдЫ рд╡рд░реНрдг рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдлреНрд░рдВрдЯреЗрдВрдб рджреНрд╡рд╛рд░рд╛ рд╡реНрдпрд╛рдЦреНрдпрд╛рдпрд┐рдд рдирд╣реАрдВ рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗ рд▓реЗрдХрд┐рди рдмреИрдХрдПрдВрдб рдЙрдиреНрд╣реЗрдВ рд╡реНрдпрд╛рдЦреНрдпрд╛рдпрд┐рдд рдХрд░реЗрдЧрд╛ рдФрд░ рдЙрди рдХреБрдВрдЬрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛, рдпрд╣ рдХреБрдЫ рдкреНрд░рддрд┐рдмрдВрдзреЛрдВ рдХреЛ рдмрд╛рдпрдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ:

{"test": 1, "test\[raw \x0d byte]": 2}
{"test": 1, "test\ud800": 2}
{"test": 1, "test"": 2}
{"test": 1, "te\st": 2}

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЗрди рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдлреНрд░рдВрдЯ рдПрдВрдб рдпрд╣ рд╕реЛрдЪ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ test == 1 рд╣реИ рдФрд░ рдмреИрдХрдПрдВрдб рдпрд╣ рд╕реЛрдЪ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ test == 2 рд╣реИред

рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдореВрд▓реНрдп рдкреНрд░рддрд┐рдмрдВрдзреЛрдВ рдХреЛ рдмрд╛рдпрдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреА рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬреИрд╕реЗ:

{"role": "administrator\[raw \x0d byte]"}
{"role":"administrator\ud800"}
{"role": "administrator""}
{"role": "admini\strator"}

рдЯрд┐рдкреНрдкрдгреА рд╕рдВрдХреНрд╖реЗрдкрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛

{% code overflow="wrap" %}

obj = {"description": "Duplicate with comments", "test": 2, "extra": /*, "test": 1, "extra2": */}

{% endcode %}

рдпрд╣рд╛рдБ рд╣рдо рдкреНрд░рддреНрдпреЗрдХ рдкрд╛рд░реНрд╕рд░ рд╕реЗ рд╕реАрд░рд┐рдпрд▓рд╛рдЗрдЬрд╝рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ рддрд╛рдХрд┐ рдЗрд╕рдХреЗ рд╕рдВрдмрдВрдзрд┐рдд рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рджреЗрдЦ рд╕рдХреЗрдВред

рд╕реАрд░рд┐рдпрд▓рд╛рдЗрдЬрд╝рд░ 1 (рдЬреИрд╕реЗ, GoLang рдХрд╛ GoJay рдкреБрд╕реНрддрдХрд╛рд▓рдп) рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрддреНрдкрдиреНрди рдХрд░реЗрдЧрд╛:

  • description = "Duplicate with comments"
  • test = 2
  • extra = ""

рд╕реАрд░рд┐рдпрд▓рд╛рдЗрдЬрд╝рд░ 2 (рдЬреИрд╕реЗ, Java рдХрд╛ JSON-iterator рдкреБрд╕реНрддрдХрд╛рд▓рдп) рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрддреНрдкрдиреНрди рдХрд░реЗрдЧрд╛:

  • description = "Duplicate with comments"
  • extra = "/*"
  • extra2 = "*/"
  • test = 1

рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ, рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХрд╛ рд╕реАрдзрд╛ рдЙрдкрдпреЛрдЧ рднреА рдкреНрд░рднрд╛рд╡реА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ:

obj = {"description": "Comment support", "test": 1, "extra": "a"/*, "test": 2, "extra2": "b"*/}

Java рдХрд╛ GSON рдкреБрд╕реНрддрдХрд╛рд▓рдп:

{"description":"Comment support","test":1,"extra":"a"}

Ruby рдХрд╛ simdjson рдкреБрд╕реНрддрдХрд╛рд▓рдп:

{"description":"Comment support","test":2,"extra":"a","extra2":"b"}

рдЕрд╕рдВрдЧрдд рдкреНрд░рд╛рдердорд┐рдХрддрд╛: рдбреАрд╕рд┐рд░рд┐рдпрд▓рд╛рдЗрдЬреЗрд╢рди рдмрдирд╛рдо рд╕реАрд░рд┐рдпрд▓рд╛рдЗрдЬреЗрд╢рди

obj = {"test": 1, "test": 2}

obj["test"] // 1
obj.toString() // {"test": 2}

Float рдФрд░ Integer

рд╕рдВрдЦреНрдпрд╛

999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999

рдХрдИ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡реЛрдВ рдореЗрдВ рдбрд┐рдХреЛрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:

999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
9.999999999999999e95
1E+96
0
9223372036854775807

рдЬреЛ рдЕрд╕рдВрдЧрддрд┐рдпрд╛рдБ рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХрддрд╛ рд╣реИ

рд╕рдВрджрд░реНрдн

{% embed url="https://websec.nl/" %}

{% hint style="success" %} AWS Hacking рд╕реАрдЦреЗрдВ рдФрд░ рдЕрднреНрдпрд╛рд╕ рдХрд░реЗрдВ:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking рд╕реАрдЦреЗрдВ рдФрд░ рдЕрднреНрдпрд╛рд╕ рдХрд░реЗрдВ: HackTricks Training GCP Red Team Expert (GRTE)

HackTricks рдХрд╛ рд╕рдорд░реНрдерди рдХрд░реЗрдВ
{% endhint %}