1 ден хакерски Joomla създавате акаунти наляво и повишаване на привилегиите

Как започна всичко

След Kamin-, за да се свържете множество разработчици малка страна заинтересовано лице - да започне да се отпуснете и да се подготвят uyazvimost sploitov.







Е, с история от над, perexodim до най-интересното - разбор уязвимостта. Както podopytnoy версия Инсталирах Joomla 3.6.3, така че всички номера линия ще са подходящи специално за тази версия. И по целия път до файловете, kotorye ще видите по-долу, ще бъде отнесено към корена на инсталираната CMS.

Blagodarya откритие Демис Палма ние знаем, че има два начина, които изпълняват за ползване система regictratsiyu. Първо, използвани в CMS и е /components/com_users/controllers/registration.php:108 файл. Вторият (тази, която ние ще ценим и трябва да се обадя), живее в /components/com_users/controllers/user.php:293. Нека да разгледаме това по-близо.

Тук оставих само интересни линии. Пълната версия на уязвимата метод може да се намери в Joomla хранилище.

1 ден хакерски Joomla създавате акаунти наляво и повишаване на привилегиите
Създаване отговорността за липсата на регистрация на потребителя

Законни искане за такси по регистрацията на потребителското прилича следния скрийншота.

1 ден хакерски Joomla създавате акаунти наляво и повишаване на привилегиите







За работа с polzovatelyu отговорен компонент com_users. Обърнете внимание на параметъра задача в искането за такси. Той има $ формат контролер. $ Метод. Виж структурата на файловете.

1 ден хакерски Joomla създавате акаунти наляво и повишаване на привилегиите
Структура съставни контролери com_users

скрипт имена в контролери папка sootvetstvuyut име внушава контролери. Тъй като това искане в момента е $ контролер = "регистрация". тя ще се нарече registration.php файл и (метод регистър).

Внимание на въпроса: как да се прехвърлят obrabotku регистрация уязвимост в кода? Може би вече сте предположили. IMENA уязвими и настоящи методи са едни и същи (регистър), така че ние трябва само името на нарича pomenyat контролера. И къде сме уязвими контролер? Точно така, в user.php файл. Poluchaetsya $ контролер = "потребител". Ние сме като се обединят заедно и да получите задачата = user.register. Сега на искането за регистрация obpabatyvaetsya необходимо от наша страна.

1 ден хакерски Joomla създавате акаунти наляво и повишаване на привилегиите
Уловен в Класа UsersControllerUser уязвими метод

Второто нещо, което трябва да направите - е да се изпрати данните в правилния формат. Тогава VCE проста. Законни регистър () очаква от нас масив наречен jform. в koto.pom минаваме данни да се регистрират - (. виж снимки да отправят молба) име, потребителско име, парола, електронна поща.

Нашето отделение приема данните от файл с потребителя за името.

Затова промяната в имената на всички параметрите на заявката jfrom на потребителя.

Третата стъпка ние се - това е валиден знак nahozhdenie CSRF, тъй като не подлежат на регистрация няма да бъде без него.

Ето как изглежда в регистъра "работа" () метод от UsersControllerRegistration контролер:

И така уязвим:

За да се разбере на второ място, много по-сериозен проблем bolee, да ни изпратите заявка за такси, генерирани и да видим как той се извършва в различни части на кода. Ето едно парче, и ексцентричността е отговорен за проверка на данните, изпратени от потребителя в оперативния метод:

Продължение статия е достъпен само за абонати

Вариант 2: Купете една статия