10 KiB
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 рд╢реЛрд╖рдг рдХреЛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдмрдирд╛ рд╕рдХрддрд╛ рд╣реИ, рд╣рдорд▓рд╛рд╡рд░ рджреНрд╡рд╛рд░рд╛ рд╣реЗрд░рдлреЗрд░ рдХрд┐рдП рдЧрдП рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдореВрд▓ рдкрд░ рд╕рдореНрдорд╛рдирд┐рдд рдХрд░рддреЗ рд╣реБрдПред
References
- https://medium.com/@shahjerry33/http-parameter-pollution-its-contaminated-85edc0805654
- https://github.com/google/google-ctf/tree/master/2023/web-under-construction/solution
{% embed url="https://websec.nl/" %}
{% 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.