Stored
Last updated
Was this helpful?
Last updated
Was this helpful?
This can lead to persistent attacks, where the malicious script runs every time the stored content is accessed, potentially stealing user data, performing actions on behalf of users, or defacing the website.
The example below is based on OffSec's course.
The Blog we are testing has two fields: username
and comment
. When we test the latter for HTML injection it does not work as the <>
characters are filtered out by the application (Figure 1). However, the HTML injection works on the username
field (Figure 2).
Next, we can test for XSS on the username
field (Figure 3), and if successful, every user that visits the page will have the payload executed on their browser.
This time the application in question has a survey form to complete that includes six fields in total, two of them vulnerable to HTML injection (Figure 4).
If we test for XSS we get a prompt box back (Figure 5.1), and we can review how this exactly works via the source code of survey.js
file. At the end of this file, the getData
function sends a GET
request and constructs the results table on the front-end (Figure 5.2).
In this application there is a comment functionality which includes a Website
field and its value is stored within the HTML href
attribute (Figure 6).
We can try escaping the tag using different payloads, but, unfortunately, none of them works.
This application has a ticket functionality and it give us access to both a low- (UserA
) and a high-privileged account (AdminA
) (Figure 8).
The example below is based on OffSec's course.
The example below is based on PortSwigger's lab.
However, the href
attribute can itself create a , thus, we are not required to escape it. In this case, we can use the javascript
pseudo-protocol directly (Figure 7).
The example below is based on TCM's course.
We can use a web server, such as Burp's Collaborator or , and use userA
to send a JavaScript payload to AdminA
through the description box on the Support Ticket page. When the latter receives and opens userA
's ticker, a GET
request will be sent to our server containing AdminA
's session cookie (Figure 9 & 10).
comment
field for HTML injection.