CGE: визуализация кравлера и скрытых связей между поддоменами

Привет, Хабр! Хотелось бы поделиться с вами моим open-source проектом для поиска директорий, поддоменов, ака crawler. Я не говорю, что он перевернёт мир краулеров или превзойдёт Katana, но, думаю, утилита будет крайне полезна для red team-команды. https://github.com/a11mut3d/CGE Проблемы, которые решает CGE Современное веб-приложение — это не монолит, где всё в одном HTML, а куча микросервисов, API и в целом эндпоинтов. Составить карту всех запросов достаточно сложно, поэтому вы не видите картину целиком. CGE помогает в этой задаче. Он: — собирает все поддомены из SSL-сертификата (как в crt.sh ); — краулит каждый эндпоинт, парсит HTML, JS, формы, аплоады, файлы; — отслеживает, куда идут запросы в реальном времени через взаимодействие с формами; — строит граф взаимодействия эндпоинта в реальном времени. Как это выглядит На данный момент у CGE есть 2 варианта использования: web UI и CLI. Если про CLI особо и нечего расписывать (он просто выдаёт все найденные эндпоинты в консоль или по желанию сохраняет в файл), то на web UI давайте остановимся подробнее. Веб-интерфейс я постарался сделать в стиле Obsidian (спойлер: получилось не очень). — Каждая нода — хост (поддомен). — Ребро между нодами — факт HTTP-обмена информацией. — При клике на ноду мы получаем список всех эндпоинтов (даже тех, которые были замечены в запросах от других хостов). — При клике на ребро мы получаем все реальные запросы между хостами. Технические детали Реализовать я решил на Python с использованием BS, requests, DNS. В качестве базы данных я решил использовать Neo4j.

https://habr.com/ru/articles/1039020/

#Пентест #crawler #api #python_3

GitHub - a11mut3d/CGE

Contribute to a11mut3d/CGE development by creating an account on GitHub.

GitHub

Как работают lambda-функции в Python: замыкания, позднее связывание и антипаттерны

Вы всё ещё используете map и filter с лямбдами в 2026 году? Подготовил большой гайд по анонимным функциям в Python: от самого первого lambda x для новичков до разбора байт-кода, замыканий и жестких антипаттернов, за которые бьют по рукам на код-ревью.

https://habr.com/ru/articles/1035918/

#lambda #python #python3 #python_3 #python_для_начинающих #python_tutor

Как работают lambda-функции в Python: замыкания, позднее связывание и антипаттерны

Часть 1 Что такое анонимная функция и зачем она нужна? В классическом понимании функция — это именованный блок кода. Мы придумываем ей говорящее имя (например, calculate_total_price ), пишем внутри...

Хабр

Полный гайд по dunder-методам в Python (от новичка до профи)

В Python всё — объект. Но как язык понимает, что делать при сложении двух классов через +, вызове len() или обращении к несуществующему атрибуту? Вся магия скрыта под капотом dunder-методов. Мы собрали полный гайд для разработчиков любого уровня: от правильной инициализации и перегрузки операторов до создания собственных дескрипторов, контекстных менеджеров и жесткой оптимизации памяти через slots . Никакой воды, только практика, живые примеры и то, что реально спрашивают на собеседованиях.

https://habr.com/ru/articles/1033432/

#ython #ООП #dunderметоды #магические_методы #метапрограммирование #дескрипторы #итераторы #генераторы #контекстные_менеджеры #Python_3

Полный гайд по dunder-методам в Python (от новичка до профи)

1. Жизненный цикл объекта: Рождение, жизнь и смерть Частая ошибка новичков — называть __init__ конструктором. По факту, когда вы пишете obj = MyClass() , Python запускает цепочку событий, в которой...

Хабр

Matplotlib для самых маленьких: от пустого окна до красивого графика

Каждый, кто начинал визуализировать данные на Python, сталкивался с этим: берешь кусок кода со StackOverflow, пытаешься подвинуть легенду или добавить вторую ось, и внезапно весь график ломается. А главное — почему одни пишут plt.plot(), а другие ax.plot()? Какой синтаксис правильный? В этом туториале мы не просто нарисуем пару линий. Мы заглянем под капот Matplotlib и разберем «анатомию» графиков на простых примерах. Вы поймете разницу между процедурным и объектно-ориентированным подходом, научитесь кастомизировать основные типы визуализаций и навсегда избавитесь от ошибки «белого квадрата» при сохранении файлов.

https://habr.com/ru/articles/1028868/

#matplotlib #python #python3 #python_для_начинающих #python_3 #визуализация #графики

Matplotlib для самых маленьких: от пустого окна до красивого графика

1. Введение Знакомство с визуализацией данных на Python почти всегда начинается с Matplotlib. И чаще всего это знакомство приносит боль. Открываешь официальную документацию — перед тобой...

Хабр

__str__ vs __repr__ в Python: конец путанице

« str для людей, а repr для машин» — эту фразу слышали многие, но на практике путаница всё равно остается. Почему функция print() иногда игнорирует ваши настройки? Что такое односторонний фолбэк? И зачем вообще писать оба метода?

https://habr.com/ru/articles/1006790/

#python #python3 #python_для_начинающих #python_3 #python_tutor #python_class #string #repr

__str__ vs __repr__ в Python: конец путанице

1. Концепция: Читаемость vs Однозначность Небольшое отступление: Если вы только начинаете знакомиться с классами, объектами и магическими методами, приглашаю вас на мой бесплатный курс ООП Python:...

Хабр

Как я создала локального AI-ассистента для системного аналитика: от Telegram-бота до полноценного помощника (часть 1)

Привет! Меня зовут Фаина, я системный аналитик с опытом более 5 лет. В последнее время все чаще стала задумываться как системному аналитику в текущих реалиях применять в работе ИИ. Так началось мое погружение в увлекательный мир LangChain, ИИ, RAG и векторные БД. Для начального исследования я решила попробовать что-то достаточно простое и базовое. Так в мою голову пришла идея создать ТГ бота, который напоминает о запланированных делах

https://habr.com/ru/articles/1005874/

#python_3 #langchain #langchain_агенты #telegram_bot #ollama #gemma_3 #ai

Как я создала локального AI-ассистента для системного аналитика: от Telegram-бота до полноценного помощника (часть 1)

Привет! Меня зовут Фаина, я системный аналитик с опытом более 5 лет. В последнее время все чаще стала задумываться как системному аналитику в текущих реалиях применять в работе ИИ. Так началось мое...

Хабр

Изучаем FastAPI за одну статью: от «Hello World» до структурированного API

Если вы пишете бэкенд на Python или только собираетесь вкатиться в эту тему, вы точно слышали про FastAPI. Он обещает скорость NodeJS, автодокументацию из коробки и строгую типизацию. Звучит круто, но для новичка любая новая технология выглядит пугающе. В этом гайде я хочу взять вас за руку и провести по всем базовым концепциям фреймворка. Мы напишем свой первый API-сервис с нуля, разберем частые ошибки новичков с асинхронностью и поймем, как писать чистый код с помощью APIRouter. Спойлер: баз данных и сложных ORM сегодня не будет, сосредоточимся на чистом понимании магии FastAPI.

https://habr.com/ru/articles/1005390/

#fastapi #python #python3 #python_для_начинающих #python_3 #python_tutor #вебразработка

Изучаем FastAPI за одну статью: от «Hello World» до структурированного API

Привет, Хабр! Если вы пишете бэкенд на Python или только собираетесь вкатиться в эту тему, вы наверняка уже слышали про FastAPI. Сейчас его требуют в вакансиях, на нём переписывают...

Хабр

Декораторы в Python для самых маленьких и немного для взрослых

Представьте типичную ситуацию: вы написали отличный кусок кода. У вас есть десяток функций, которые делают полезную работу — например, ходят в стороннее API, парсят данные и аккуратно складывают их в базу. Код читаемый, лаконичный, всё работает как часы. И тут приходит тимлид (или заказчик) и говорит: «Слушай, а давай-ка мы будем замерять время выполнения каждой функции и писать это в логи. Ну, чтобы отлавливать тормоза на проде». Что делает разработчик, который не знает про декораторы?

https://habr.com/ru/articles/1004866/

#декораторы #декораторы_python_для_начинающих #python #python3 #python_для_начинающих #python_3 #python_tutor

Декораторы в Python для самых маленьких и немного для взрослых

Введение. Зачем вообще нужны декораторы? Представьте типичную ситуацию: вы написали отличный кусок кода. У вас есть десяток функций, которые делают полезную работу — например, ходят в стороннее API,...

Хабр

Urich: DDD и CQRS для микросервисов на Starlette без ручной раскладки роутов

Когда строим бэкенд по DDD и CQRS, роуты и OpenAPI обычно собираем вручную. Urich делает иначе: описываешь ограниченный контекст одним объектом — маршруты и документация появляются сами. Обзор фреймворка на Starlette и примеры кода.

https://habr.com/ru/articles/1002994/

#python_3 #starlette #ddd #cqrs #микросервисы

Urich: DDD и CQRS для микросервисов на Starlette без ручной раскладки роутов

Когда хочется строить бэкенд по DDD и CQRS на Python, а не «просто REST», приходится самому раскладывать роуты, команды, запросы и события. Я сделал фреймворк Urich — в нём один объект описывает...

Хабр

ООП в Python за 1 статью: от «Hello World» до архитектуры

Вы освоили переменные, разобрались с циклами и научились писать функции. Ваши скрипты бодро парсят сайты, перекладывают файлы или считают статистику. Жизнь кажется прекрасной, а Python — лучшим языком в мире. Но однажды проект начинает расти. Вместо одного файла у вас их уже десять. Переменные начинают «путешествовать» по коду непредсказуемым образом, функции принимают по 8 аргументов, а попытка исправить один баг рождает два новых в совершенно неожиданном месте. Вы смотрите на свой код и понимаете: это не архитектура, это тарелка со спагетти, в которой запутался даже сам повар.

https://habr.com/ru/articles/1000378/

#python #python3 #python_для_начинающих #python_3 #python_class #python_tutor #python_oop #пайтон #пайтон_для_детей #пайтон_ооп

ООП в Python за 1 статью: от «Hello World» до архитектуры

Введение Вы уже освоили переменные, циклы и функции. Ваши скрипты бодро парсят сайты и перекладывают файлы. Но однажды проект начинает расти. Вместо одного файла — десять. Переменные «путешествуют» по...

Хабр