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
- Check the subscription plans!
- Join the ЁЯТм Discord group or the telegram group or follow us on Twitter ЁЯРж @hacktricks_live.
- Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.
{% 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
- рдкреИрд░рд╛рдореАрдЯрд░ рдирд╛рдо рдореЗрдВ %00 рдХреЗ рдмрд╛рдж рдХреБрдЫ рднреА рдирдЬрд░рдЕрдВрджрд╛рдЬ рдХрд░реЗрдВред
- name[] рдХреЛ рдПрд░реЗ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрднрд╛рд▓реЗрдВред
- _GET рдХрд╛ рдорддрд▓рдм GET рд╡рд┐рдзрд┐ рдирд╣реАрдВ рд╣реИред
- рдЕрдВрддрд┐рдо рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджреЗрдВред
Ruby 3.3.5 and WEBrick 1.8.2
- рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП & рдФрд░ ; рд╕реАрдорд╛рдВрдХрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред
- name[] рдХреЛ рдорд╛рдиреНрдпрддрд╛ рдирд╣реАрдВ рджреА рдЧрдИред
- рдкрд╣рд▓реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджреЗрдВред
Spring MVC 6.0.23 AND Apache Tomcat 10.1.30
- POST RequestMapping == PostMapping & GET RequestMapping == GetMappingред
- POST RequestMapping & PostMapping name[] рдХреЛ рдорд╛рдиреНрдпрддрд╛ рджреЗрддреЗ рд╣реИрдВред
- рдпрджрд┐ name рдФрд░ name[] рджреЛрдиреЛрдВ рдореМрдЬреВрдж рд╣реИрдВ рддреЛ name рдХреЛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджреЗрдВред
- рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдЬреЛрдбрд╝реЗрдВ рдЬреИрд╕реЗ рдХрд┐ first,lastред
- POST RequestMapping & PostMapping рд╕рд╛рдордЧреНрд░реА рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рд╛рде рдХреНрд╡реЗрд░реА рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдорд╛рдиреНрдпрддрд╛ рджреЗрддреЗ рд╣реИрдВред
NodeJS 20.17.0 AND Express 4.21.0
- name[] рдХреЛ рдорд╛рдиреНрдпрддрд╛ рджреЗрддреЗ рд╣реИрдВред
- рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдЬреЛрдбрд╝реЗрдВ рдЬреИрд╕реЗ рдХрд┐ first,lastред
GO 1.22.7
- name[] рдХреЛ рдорд╛рдиреНрдпрддрд╛ рдирд╣реАрдВ рджреА рдЧрдИред
- рдкрд╣рд▓реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджреЗрдВред
Python 3.12.6 AND Werkzeug 3.0.4 AND Flask 3.0.3
- name[] рдХреЛ рдорд╛рдиреНрдпрддрд╛ рдирд╣реАрдВ рджреА рдЧрдИред
- рдкрд╣рд▓реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджреЗрдВред
Python 3.12.6 AND Django 4.2.15
- name[] рдХреЛ рдорд╛рдиреНрдпрддрд╛ рдирд╣реАрдВ рджреА рдЧрдИред
- рдЕрдВрддрд┐рдо рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджреЗрдВред
Python 3.12.6 AND Tornado 6.4.1
- name[] рдХреЛ рдорд╛рдиреНрдпрддрд╛ рдирд╣реАрдВ рджреА рдЧрдИред
- рдЕрдВрддрд┐рдо рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджреЗрдВред
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
рдЬреЛ рдЕрд╕рдВрдЧрддрд┐рдпрд╛рдБ рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХрддрд╛ рд╣реИ
рд╕рдВрджрд░реНрдн
- https://medium.com/@shahjerry33/http-parameter-pollution-its-contaminated-85edc0805654
- https://github.com/google/google-ctf/tree/master/2023/web-under-construction/solution
- https://medium.com/@0xAwali/http-parameter-pollution-in-2024-32ec1b810f89
- https://bishopfox.com/blog/json-interoperability-vulnerabilities
{% 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 рдХрд╛ рд╕рдорд░реНрдерди рдХрд░реЗрдВ
- рд╕рджрд╕реНрдпрддрд╛ рдпреЛрдЬрдирд╛рдПрдБ рджреЗрдЦреЗрдВ!
- рд╣рдорд╛рд░реЗ ЁЯТм Discord рд╕рдореВрд╣ рдпрд╛ telegram рд╕рдореВрд╣ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдВ рдпрд╛ Twitter ЁЯРж рдкрд░ рд╣рдореЗрдВ рдлреЙрд▓реЛ рдХрд░реЗрдВ @hacktricks_live.
- рд╣реИрдХрд┐рдВрдЧ рдЯреНрд░рд┐рдХреНрд╕ рд╕рд╛рдЭрд╛ рдХрд░реЗрдВ рдФрд░ HackTricks рдФрд░ HackTricks Cloud рдЧрд┐рдЯрд╣рдм рд░рд┐рдкреЛрдЬрд┐рдЯрд░реА рдореЗрдВ PR рд╕рдмрдорд┐рдЯ рдХрд░реЗрдВред