FirstBlood-#787Stored XSS on Vaccination Manager Portal through User Agent
This issue was discovered on FirstBlood v2

On 2021-10-28, xnl-h4ck3r Level 4 reported:


A Stored XSS vulnerability exists on /vaccination-manager/portal.php where a payload can be sent in the User-Agent header of the request.

Steps to reproduce

  1. Proxy all requests throguh Burp

  2. Go to vaccination-manager/pub/upload-vaccination-proof.php and enter any email address and any image and press UPLOAD

  3. Go to Burp history and select the latest POST request to /vaccination-manager/pub/submit-vaccination-proof.php and send to Repeater.

  4. In Burp repeater, change the User-Agent header to <svg/onload=alert(document.cookie)> and send:

  5. Go to /vaccination-manager/login.php and login to the portal (or use SQLi as mentioned in Report #785) and observe the Stored XSS payload entered in Step 4 executes:


The impact of this vulnerability is that an attacker could steal the admins drps cookie, potentially allowing them to perform actions as that user that requrie admin authorisation.

P2 High

Endpoint: /vaccination-manager/portal.php

Parameter: User-Agent header

Payload: <svg/onload=alert(document.cookie)>

FirstBlood ID: 29
Vulnerability Type: Stored XSS

When uploading a vaccine proof it is possible to achieve stored XSS against admins set via the user agent. As this value typically can't be user controlled the developers did not think it was 'worth' preventing against XSS.