hacktricks/pentesting-web/cache-deception
2024-08-18 11:03:07 +00:00
..
cache-poisoning-to-dos.md Translated ['network-services-pentesting/pentesting-smtp/smtp-smuggling. 2024-08-18 11:03:07 +00:00
cache-poisoning-via-url-discrepancies.md Translated ['network-services-pentesting/pentesting-smtp/smtp-smuggling. 2024-08-18 11:03:07 +00:00
README.md Translated ['network-services-pentesting/pentesting-smtp/smtp-smuggling. 2024-08-18 11:03:07 +00:00

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
{% endhint %}


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

рдХреИрд╢ рдкреЙрдЗрдЬрд╝рдирд┐рдВрдЧ рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд╛рдЗрдб рдХреИрд╢ рдХреЛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рд╣реЗрд░рдлреЗрд░ рдХрд░рдирд╛ рд╣реИ рдХрд┐ рдХреНрд▓рд╛рдЗрдВрдЯ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд, рдЖрдВрд╢рд┐рдХ, рдпрд╛ рд╣рдорд▓рд╛рд╡рд░ рдХреЗ рдирд┐рдпрдВрддреНрд░рдг рдореЗрдВ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рд╣реЛ рдЬрд╛рдПрдВред рдкреНрд░рднрд╛рд╡ рдХреА рд╕реАрдорд╛ рдкреНрд░рднрд╛рд╡рд┐рдд рдкреГрд╖реНрда рдХреА рд▓реЛрдХрдкреНрд░рд┐рдпрддрд╛ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рджреВрд╖рд┐рдд рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗрд╡рд▓ рдЙрди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдкрд░реЛрд╕реА рдЬрд╛рддреА рд╣реИ рдЬреЛ рдХреИрд╢ рд╕рдВрджреВрд╖рдг рдХреЗ рджреМрд░рд╛рди рдкреГрд╖реНрда рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВред

рдХреИрд╢ рдкреЙрдЗрдЬрд╝рдирд┐рдВрдЧ рд╣рдорд▓реЗ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрдИ рдЪрд░рдгреЛрдВ рдореЗрдВ рд╣реЛрддрд╛ рд╣реИ:

  1. рдЕрдирдХреАрдж рдЗрдирдкреБрдЯ рдХреА рдкрд╣рдЪрд╛рди: рдпреЗ рдРрд╕реЗ рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИрдВ рдЬреЛ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдХреИрд╢ рдореЗрдВ рдЕрдиреБрд░реЛрдз рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИрдВ, рд╕рд░реНрд╡рд░ рджреНрд╡рд╛рд░рд╛ рд▓реМрдЯрд╛рдИ рдЧрдИ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЛ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред рдЗрди рдЗрдирдкреБрдЯ рдХреА рдкрд╣рдЪрд╛рди рдХрд░рдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЗрдиреНрд╣реЗрдВ рдХреИрд╢ рдХреЛ рд╣реЗрд░рдлреЗрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╢реЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
  2. рдЕрдирдХреАрдж рдЗрдирдкреБрдЯ рдХрд╛ рд╢реЛрд╖рдг: рдЕрдирдХреАрдж рдЗрдирдкреБрдЯ рдХреА рдкрд╣рдЪрд╛рди рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЕрдЧрд▓рд╛ рдХрджрдо рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рд╣реИ рдХрд┐ рдЗрди рдкреИрд░рд╛рдореАрдЯрд░реЛрдВ рдХрд╛ рджреБрд░реБрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рдП рддрд╛рдХрд┐ рд╕рд░реНрд╡рд░ рдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ рдХрд┐ рд╣рдорд▓рд╛рд╡рд░ рдХреЛ рд▓рд╛рдн рд╣реЛред
  3. рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рдХрд┐ рджреВрд╖рд┐рдд рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреИрд╢ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИ: рдЕрдВрддрд┐рдо рдХрджрдо рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рд╣реИ рдХрд┐ рд╣реЗрд░рдлреЗрд░ рдХреА рдЧрдИ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреИрд╢ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИред рдЗрд╕ рддрд░рд╣, рдкреНрд░рднрд╛рд╡рд┐рдд рдкреГрд╖реНрда рдХреЛ рдПрдХреНрд╕реЗрд╕ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдХреЛрдИ рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЬрдм рдХреИрд╢ рджреВрд╖рд┐рдд рд╣реЛ, рддреЛ рджреВрд╖рд┐рдд рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдЧрд╛ред

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


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
{% endhint %}