Шалом всем кто читает это произведение недопонятого гения.
Статья написанна с уклоном на то что бы совсем новички понимали как производиться маломальский аудит сайта.В статье пытался разжевать все до мелочей так что старички не ругайте сильно.
P.s Я не самый лучший хакер в мире и не претендую на лучшее объяснение, моя цель это объяснить вещи так как хотел я чтобы мне в начале моего пути все это объясняли.Вторая часть где мы уже добъем этот сайт выйдет в ближайшем времени по тех.причинам, за это прошу прощения.
Содержание:
1.Поиск таргета
2.Внешний осмотр таргета
3.Сбор информации о сервере и сайте
4.Поиск точек входа SQLinj
5.Поиск точек входа XSS
1.ЧАСТЬСтатья написанна с уклоном на то что бы совсем новички понимали как производиться маломальский аудит сайта.В статье пытался разжевать все до мелочей так что старички не ругайте сильно.
P.s Я не самый лучший хакер в мире и не претендую на лучшее объяснение, моя цель это объяснить вещи так как хотел я чтобы мне в начале моего пути все это объясняли.Вторая часть где мы уже добъем этот сайт выйдет в ближайшем времени по тех.причинам, за это прошу прощения.
Содержание:
1.Поиск таргета
2.Внешний осмотр таргета
3.Сбор информации о сервере и сайте
4.Поиск точек входа SQLinj
5.Поиск точек входа XSS
Так первое с чего начнем это поиск таргета у меня никаких заготовок нет так что будем использовать что есть.
На жестоком у меня завалялось 1,5к сайтов,выложу как печосницу вам для практики. СКАЧАТЬ
!!!Если там есть .ru или .uk домены.Я не работаю по ру, это мой парсер очень хочет меня подставить!!!
Код: Скопировать в буфер обмена
Code:
Скачиваемм cms-detector он валяется на гите
git clone https://github.com/0xWhoknows/cms-detector.git
cd cms-detector
nano site.txt
После этого копируем из линков которые я дал в этот файл
ctrl+x и Y все сайты загруженны
python3 cms-detector.py
В Enter Your Site List :
вписываем site.txt который вы должы были создать как я показал сверхуВ Enter the number of threads :
вписываем не больше 5 чтобы не было проскоковЖмем enter, выглядеть это должно примерно так
После этого у вас есть минут 5 выйти покурить, после окончания работы софта все будет сохранено в папку result
Наши результаты будут выглядеться вот так:
---------------------
Информационная сноска:
Если у вас появился вопрос почему мы выбираем именно сайты с админками то отвечаю, админка это еще один вектор атаки который в случае отсутвия других уязвимостей может помочь.
----------------------
Код: Скопировать в буфер обмена
Code:
cat joomla_results.txt
Тут все сайты с joomla cms
Не спешим их открывать ведь наш детектор мог ошибиться
Теперь мы скачиваем CMSeek так же с github
git clone https://github.com/Tuhinshubhra/CMSeeK.git
cd CMSeek
pip3 install -r requirements.txt
python3 cmseek.py -l /home/{ваш_юзер}/cms-detector/results/joomla_results.txt
И ищете более подходящий таргет по версии нашей CMS чем меньше тем лучше, это значит что во всемирной паутине на нее есть больше сплоитов, так же не забывайте смотреть на кол-во доступных директорий опять же это показатель насколько кодер заморачивался над безопасностью своего сайта.
Вот таргет который нашел я, с ним и будем работать
2.ЧАСТЬ
И так мы нашли себе таргет котрый нам по душе, теперь перейдем к внешнему осмотру если внешне сайт выглядить каряво, убого и т.д, то для нас это хороший знак ведь если кодер не парился над внешкой то и над внутрянкой он не сильно заморачивался.
---------------------
Информационная сноска:
То что мы выбираем стремные сайты не значит что красивые сайты неуязвимые в них бывает дырок больше чем и в убогих на внешний вид, просто зачастую к "красивым" сайтам подходят с большей скурпулезностью и вниманиям к деталям вот и все.
----------------------
Так же не забываем тыкать по сайту может есть окна для поиска или ввода их обязательно надо будет проверять, но об этом позже.
Впринцепе под кретерии которые я описал сайт подходит.
Так же считаю что стоит стразу проверить есть ли на сайте WAF(Web Application Firewall)
---------------------
Информационная сноска:
WAF(Web Aplication Firewall) - заваливать вас умными терминами я не буду, простым словами хуетень которая не дает юным гениям делать на сайте все что вздумается (Но мы его обойдем)
----------------------
Пишем
[SIZE=5]https://example.com/../../etc/passwd[/SIZE]
На мое удивление он здесь есть, запоминаем это летс гоу дальше
3.ЧАСТЬ
Далее мы начинаем сканировать сайт на открытые порты, смотрим доступные директори , поиск суб-доменов и т.п
Первое что мы будем использовать это всеми нами любимый nmap
Прописываем
nmap -sT -A example.com
---------------------
Информационная сноска:
Для понимания зачем я использовал эти флаги в nmap
-sT полное сканирование TCP портов
-A Включение обнаружения ОС, определение версии, сканирование сценариев и трассировку.
----------------------
На данном этапе мы копируем всю информацию что дал нам nmap в .txt и идем далее.
Следюущим шагом мы посмотрим доступные нам директории через gobuster,
gobuster не установлен в kali изначально, но если просписать gobuster то kali предложит нам его что мы и делаем.
После установки пишем такую команду и ждем конца её выполнения
gobuster dir --url https://example.com/ -w /usr/share/wordlists/dirb/common.txt -t 20
Далее видим примерно такую картину:
---------------------
Информационная сноска:
Если кому то не понятна плашка (Status: тут код который дал нам сервер) то объяняю, зачастую вам будут попадаться 4 кода
200 - сервер отпарвил обычный ответ
403 - доступ к линку или директории недоступен
500 - Внутренняя ошибка сервера
301 - означает что переходе на эту ссылку вам перекинет на другую ссылку
406 - Not Acceptable ну или же WAF(Web Application Firewall) просто не дает вам доступ потому что считает что тем самым вы можете навердить системе
Короче сервер с вам общается таким методом, конечно этих кодов намного больше, если интересно заходите и читаете.
По gobuster
dir - режим работы программы, gobuster в своем арсенале имеет разные режимы работы например мы можем искать dns поставив вместо dir dns
--url ну собственно наш линк
-w путь до листа с директориями (В kali он уже есть '/usr/share/wordlists/dirb/common.txt')
-t кол во потоков, если сайт с виду слабенький не надо его ебать сотней потоков не нароком положите сервер а еще хуже если это заметит сис.,админ.
----------------------
На этом моменте у нас могут начать разбегаться глаза, но мы не поддаемся соблазнам просто копирем все в наш .txt и идем дальше.
Далее используем ffuf она уже есть в kali так что скачивать чего то из вне мы не будем
Неплохой subdomain wordlist =>
https://github.com/danielmiessler/SecLists/blob/master/Discovery/DNS/subdomains-top1million-5000.txt
Пишем
ffuf -w /home/{ваш_юзер}/Downloads/subdomains-top1million-5000.txt -u https://example.com/ -H "Host: FUZZ.example.com" -mc 200 -t 10
и уходим на перекур 5-10 минут в зависимости от кол-ва потоков которые вы поставили
по итогу получаем список subdomain
---------------------
Информационная сноска:
subdomain - это подсайт, который выглядит и работает как самостоятельный ресурс но находящийся на одном сервере с главным доменом.
По ffuf
-H - мы указываем хост с препиской FFUZ на линке который указали во флаге -u для того чтобы показать программе что мы хотим перебирать
-mc 200 - Matcher или все тот же ответ от сервера, мы просим программу выдавать нам сабдомены только которые присылают нам status code 200.
---------------------
На этом моменте мы заканичваем собирать информацию и переходим к реализации уязвимсотей, короче ко взлому.
Все что нам давали программы у вас должы быть записанно, не забываем!!!
4 ЧАСТЬ
Ну вот мы и перешли к самому интересному
Если посмотреть на основную страницу то на ней не большое кол-во информации, зато gobuster дал нам очень интересную директорию а именно /store/
После перехода туда уже можно сказать гуляй рука балдей писюн.
Куча окон ввода может свидетельствовать о xss, редиректы на продукты + они еще и преправленны php что может означать sqlinj и все это надо проверить.Так же есть сабдомены которые тоже надо проверять + не забываем про довольнотаки старую версию joomla cms которая тоже дырявая и сполиты на нее тоже надо будет проверять.
Тыкаем на любой продукт и смотрим как выглядит ссылка
https://example.com/store/index.php?main_page=product_info&cPath=&products_id=211
Так сразу видим параметр products_id, кормилица дамперов с ним может только если параметр id посоревноваться)
Так же пошерудив по сайту находим еще варинты
https://example.com/store/index.php?main_page=index&cPath=4_46
https://example.com/store/index.php?main_page=login
https://example.com/store/index.php?main_page=login&language=en
https://example.com/store/index.php?main_page=contact_us&action=success
https://example.com/store/index.php?main_page=advanced_search&keyword=23523&search_in_description=1&inc_subcat=0&sort=20a
Значит будем тестить через sqlmap
sqlmap -u 'сюда вставляем все поочередно 6 линков' -p products_id --level 5 --risk 3 -random-agent --dbs --dbms=mysql --tamper=apostrophemask,apostrophenullencode,base64encode
В конце всех тестов sqlmap ничего не дал, следовательно надо переходить к xss если есть вопросы по использования sqlmap прошу обратиться к этой статье, очень все классно и понятно рассказано
https://xssforumv3isucukbxhdhwz67hoa5e2voakcfkuieq4ch257vsburuid.onion/threads/39318/
5 ЧАСТЬ
Идем к XSS уязвимостям
Я не хочу заваливать вас мат частью, вам надо запомнить что в оснвном есть три вида xss и все тут пишеться на JavaScript
1.Stored XSS
Код: Скопировать в буфер обмена
Code:
<script>
/ Вредоносный код здесь
</script>
2.Reflected XSS
http://example.com/search?query=<script>alert('XSS')</script>
3.DOM-based XSS
http://example.com/page#<script>alert('XSS')</script>
Опять же если интересно берем и изучаем, лишним точно не будет
Так как мы знаем что сайт накрыт WAF в тупую писать <script>alert('XSS')</script> не имеет смысла
Мы увиди вот это
Нужно видоизменять наш запрос, например играя с верхним и нижним регистром
пробуем
<ScRiPt>ALeRt()</ScRiPt>
Но мы не сдаемся, не бывает сайтов которые невозможно взломать
Путем попыток я понял что этот WAF неплохо защищает от Reflected XSS
Попробуем Stored XSS для этого будет использовать burpsuite
Открываем burpsuite (Он так же уже есть в kali)
открываем proxy --> proxy settings
видим тут в proxy listeners
127.0.0.1:8080
Далее в firefox скачиваем FoxyProxy через addons --> добавляем туда нашу проксю
127.0.0.1:8080
и так же не забываем добавить сертификат от бурпавсе для работы с burpsuite у нас готово
теперь нам нужно найти цель, ну начнем с самого верха сайта и тут аккурат лежит корзина или же View Cart
добавляем что то в корзину и на сайте нажимаем View Cart
ага есть окно ввода, ну пробуем найти его в burp
перед этим на сайте вводим туда что то (я ввел wete3) и далее
в бурпе во вкладке intercept --> нажимаем на intercept is off
кликаем на update
бурп выдает нам вот что
ага это строчка state
в строчку state пробуем ввести <ScRiPt>ALeRt()</ScRiPt>
БИНГО!!! WAF не индексирует эту строчку и мы смогли пронести наш код, вот мы и нашли один из векторов атаки на сайт а именно XSS
К сожаление из-за того что у автора есть еще дела он пока что уходит, но скоро будет продолжение
надеюсь читателям статья понравилась, никогда не отказываюсь от конструктивной критики.