From 0108d015716669f6727dd4ec5d628113a2892cd8 Mon Sep 17 00:00:00 2001 From: Swissky <12152583+swisskyrepo@users.noreply.github.com> Date: Mon, 18 Nov 2024 16:51:28 +0100 Subject: [PATCH] Edge Side Inclusion --- .../Files/ssi_esi.txt | 92 +++++++++++++++++++ Server Side Include Injection/README.md | 55 +++++++++-- 2 files changed, 140 insertions(+), 7 deletions(-) create mode 100644 Server Side Include Injection/Files/ssi_esi.txt diff --git a/Server Side Include Injection/Files/ssi_esi.txt b/Server Side Include Injection/Files/ssi_esi.txt new file mode 100644 index 0000000..bed4827 --- /dev/null +++ b/Server Side Include Injection/Files/ssi_esi.txt @@ -0,0 +1,92 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 
+
+
+
+x=>alert(/Chrome%20XSS%20filter%20bypass/);> \ No newline at end of file diff --git a/Server Side Include Injection/README.md b/Server Side Include Injection/README.md index 00c6bff..6ec6cad 100644 --- a/Server Side Include Injection/README.md +++ b/Server Side Include Injection/README.md @@ -6,6 +6,7 @@ ## Summary * [Methodology](#methodology) +* [Edge Side Inclusion](#edge-side-inclusion) * [References](#references) @@ -13,16 +14,56 @@ SSI Injection occurs when an attacker can input Server Side Include directives into a web application. SSIs are directives that can include files, execute commands, or print environment variables/attributes. If user input is not properly sanitized within an SSI context, this input can be used to manipulate server-side behavior and access sensitive information or execute commands. -| Description | Payload | -|-------------------------|---------| -| Print a date | `` | -| Print all the variables | `` | -| Include a file | `` | -| Execute commands | `` | -| Doing a reverse shell | `` | +SSI format: `` + +| Description | Payload | +| ----------------------- | ---------------------------------------- | +| Print the date | `` | +| Print the document name | `` | +| Print all the variables | `` | +| Setting variables | `` | +| Include a file | `` | +| Include a file | `` | +| Execute commands | `` | +| Reverse shell | `` | + + +## Edge Side Inclusion + +HTTP surrogates cannot differentiate between genuine ESI tags from the upstream server and malicious ones embedded in the HTTP response. This means that if an attacker manages to inject ESI tags into the HTTP response, the surrogate will process and evaluate them without question, assuming they are legitimate tags originating from the upstream server. + +Some surrogates will require ESI handling to be signaled in the Surrogate-Control HTTP header. + +```ps1 +Surrogate-Control: content="ESI/1.0" +``` + +| Description | Payload | +| ----------------------- | ---------------------------------------- | +| Blind detection | `` | +| XSS | `` | +| Cookie stealer | `` | +| Include a file | `` | +| Display debug info | `` | +| Add header | `` | +| Inline fragment | `` | + + +| Software | Includes | Vars | Cookies | Upstream Headers Required | Host Whitelist | +| -------- | -------- | ---- | ------- | ------------------------- | -------------- | +| Squid3 | Yes | Yes | Yes | Yes | No | +| Varnish Cache | Yes | No | No | Yes | Yes | +| Fastly | Yes | No | No | No | Yes | +| Akamai ESI Test Server (ETS) | Yes | Yes | Yes | No | No | +| NodeJS' esi | Yes | Yes | Yes | No | No | +| NodeJS' nodesi | Yes | No | No | No | Optional | ## References +* [Beyond XSS: Edge Side Include Injection - Louis Dion-Marcil - April 3, 2018](https://www.gosecure.net/blog/2018/04/03/beyond-xss-edge-side-include-injection/) +* [DEF CON 26 - Edge Side Include Injection Abusing Caching Servers into SSRF - ldionmarcil - October 23, 2018](https://www.youtube.com/watch?v=VUZGZnpSg8I) +* [ESI Injection Part 2: Abusing specific implementations - Philippe Arteau - May 2, 2019](https://gosecure.ai/blog/2019/05/02/esi-injection-part-2-abusing-specific-implementations/) * [Exploiting Server Side Include Injection - n00py - August 15, 2017](https://www.n00py.io/2017/08/exploiting-server-side-include-injection/) +* [Server Side Inclusion/Edge Side Inclusion Injection - HackTricks - July 19, 2024](https://book.hacktricks.xyz/pentesting-web/server-side-inclusion-edge-side-inclusion-injection) * [Server-Side Includes (SSI) Injection - Weilin Zhong, Nsrav - December 4, 2019](https://owasp.org/www-community/attacks/Server-Side_Includes_(SSI)_Injection) \ No newline at end of file