![]() |
[SIZE="2"][COLOR="Lime"][B]WordPress 2.*
"> " /> ....................... [/CODE] ./wp-admin/includes/class-pclzip.php Код:
.................................Все действия - в порядке вещей. Если мы попробуем вместо .zip подсунуть .php файл, он тоже будет подвергаться всем этим действиям, и в итоге - удалится. При попытке загрузить шелл-код на сервер, я столкнулся с проблемой0.233 секунд - этого времени явно маловато для последовательной загрузки аплоадера и затем самого шелл-кода. Однако, если пропихнуть в аплоадер что-нибудь для веса - время парсинга можно увеличить до рекордных1.363 секунд. (тут я рассматриваю стандартную конфигурацию сервера, а конкретно Denwer сборку). Значит вручную это будет делать тяжело, пишем скрипт. В итоге родился такой концепт (это бета-версия) script.php Код:
Код:
Скрипт авторизуется в WordPress, заливает uploader в ./wp-content/uploads и отправляет аплоадеру запрос на загрузку шелл кода, пока аплоадер ещё не удалён. Какие проблемы: 1) Запрос к аплоадеру отправляется слишком поздно, на localhost загрузка идёт раз через раз. Нужно использовать multi-exec. 2) Хорошо бы вместо аплоадера использовать конструкцию типа cp('./wp-content/uploads/image.jpg','./wp-content/uploads/shell.php'). Эта конструкция лучше, так как менее временизатратная, вы просто стандартным MediaManager аплоадите картинку с шеллом, а наш скрипт её переименуют и переместит. Можно успеть уложиться в отведённое время. Заключение: Скрипт пока ещё будет дописываться, концепт показал. Коллеги, может будут какие-нибудь предложения по увеличению времени жизни загружаемого аплоадера? |
По сути тут чистый Race Condition, как мне уже предложили, разумно в качестве Uploader использовать file_put_contents(shell_code), а для того, что бы войти в состоянии гонки - использовать bash curl -X HEAD .
Это бы решило проблему.... Но кое-где HEAD бывает отключен, GET может парсить долго. Что делать тогда? |
Спускаем для завлечения в лвл8
|
| Время: 06:53 |