Автор: Elekt
Invision Power Board <= 2.3.5
Multiple Vulnerabilities
http://acid-root.new.fr/?0:18
http://packetstormsecurity.org/filedesc/ipb235-multi.txt.html
Экспоит основывается на
SQL-inj в параметре
"name" файла
"sources/action_public/xmlout.php"
и использует технологию классического посимвольного брута данных.
Особенность урленкода %2527 делает его независимым от magic_quotes.
/ipb235/index.php?s=&act=xmlout&do=check-display-name&name=%2527
IPS Driver Error
There appears to be an error with the database.
You can try to refresh the page by clicking here
В эксплоите предусмотрено три режима работы.
-attack 1
Через скуль получают сессию админа.
Из настроек извлекается инфа о привязке сессии к ip-address и browser.
Если таковая привязка имеется (включено по дефолту) и админ заходил не из под прокси - атака невозможна.
В ином случае - извлекаются ip-address и browser админа и производится попытка войти под админом.
В случае успешной попытки эксплоит прописывает веб-шелл в файл языка.
Вероятность успеха атаки мала, ибо:
~ сессия имет по дефолту привязку к айпи и браузеру
~ время жизни сессии скорее всего просрочено. придется караулить админа, либо спровоцировать его зайти в админку.
Сам процесс "ожидания" в эксплоите реализован в цикле - ожидание появления новой сессии.
Пример запуска эксплойта:
php ipb235-multi.txt -attack 1 -url http://www.ipb-235.com/forum/
-attack 2
Как ни удивительно - в сессии cookie *ipb_stronghold пользователя присутствует пароль к БД.
Используя атаку по словарю, эксплоит пытается сбрутить пароль к БД из хеша сессии.
Через скуль эксплоит получает имя текущего пользователя БД.
Необходима валидная учетная запись, либо куки со сниффера.
Вероятность успеха мала и зависит в большей мере от вашего словаря и рэндомности пароля.
Пример запуска эксплойта:
php ipb235-multi.txt -attack 2 -url http://www.ipb-235.com/forum/ -ip <ВАШ_IP> -dict passwd.txt -uname mynick -pwd password
Разложим алгоритм генерации сессии:
PHP код:
$md5 = md5(trim($line).$this->p_sql_u);
$md5 = md5($this->p_uid.'-'.$ip_a[0].'-'.$ip_a[1].'-'.$this->p_hash).$md5;
$md5 = md5($md5);
Преобразуем к:
PHP код:
PHP код:
md5(md5($this->p_uid.'-'.$ip_a[0].'-'.$ip_a[1].'-'.$this->p_hash).md5($pass.$this->p_sql_u))
Тогда
~ если
*member_id нашего юзера, например,
1745
~ если у нас ip, например,
192.168.5.235
~ если cookie *pass_hash, например,
12345678901234567890123456789012
~ если мы знаем заведомо\получили через SQL-inj имя текущего SQL-юзера к БД, например,
sqladmin@localhost
Тогда:
PHP код:
md5(md5('1745-192-168-12345678901234567890123456789012'). md5($pass.'sqladmin'))
Посмотрел модули в
PasswordPro - можно брутить пасс из него по маске.
Используем модуль
md5(md5($salt).md5($pass))
Ставьте атаку по маске, например, как
?|?|?|?|?|?|?|?|sqladmin
где как видите в конце маски идет sql юзер БД.
Ну подмаску ?| (a-z) можете выбрать и другую, однако тройной мд5 будет аццки тормозить на широком диапазоне символов...
-attack 3
И наконец-то класическая добыча пароля пользователя + соль.
Встроенный в эксплоит брутфорс попробует перебрать найденный хеш по словарю,
хотя рекомендую перебирать чем-нить по шустрее.
php ipb235-multi.txt -attack 3 -url http://www.ipb-235.com/forum/ -dict passwd.txt
Реализован режим обхода IDS. Вобщем, автору DarkFig - большой респект.
Я немного оптимизировал код.
Максимальная скорость работы возросла в среднем в 2.5 раза.
На примере атаки #3 : оригинальному эксплоиту потребуется около
500 запросов для брута md5 хеша + соли.
Мой вариант для тойже задачи потребует не более
200
ver1.5
-----------------------
Сдесь аттач с программой

(у кого права есть, поставьте, будте так добры )
-----------------------
PS Материал востановлен
Дата публикации: 30.08.2008, 10:50
Автор Elekt