Обновить

Привет хабр! Извиняюсь, что все это время я к сожалению не придерживался старого графика 1 глава - 1 день, так, как был сильно занят, но сейчас за этот день готовы целых 2 главы — 5 и 6 вот как пример перевода отлаженый кусок 5 главы:

5.3 Поисковые системы

Назначение поисковой системы — превратить океан данных в искомую и пригодную для действий информацию.

Поисковая система состоит из следующих частей:

  • Краулеры (обходчики), которые плавают по океану данных и превращают его в структурированные данные

  • Индекс, используемый для хранения структурированных данных, извлечённых краулерами

  • И интерфейс поиска, используемый для запросов к индексу

Рисунок 5.1: Части поисковой системы

Почему это важно?

Потому что по своей сути OSINT — это построение специализированной поисковой системы о наших целях: вы обходите данные из других баз данных и индексируете только значащую информацию о вашей цели для последующего поиска. Будь то в markdown-отчёте, в maltego или в традиционной базе данных, такой как PostgreSQL.

Как мы увидим, поисковые системы не ограничиваются вебом (как Google или Bing). Существуют также поисковые системы по серверам и IoT (интернету вещей).

К сожалению для нас, большинство публичных поисковых систем вежливы: они уважают файлы robots.txt и потому могут пропускать интересные данные. Более того, они не обходят страницы, скрытые за экраном входа в систему.

Вот почему нам также нужно уметь строить собственные краулеры.

И кусок 6 главы все также отлаженый и переведенный:

6.6 Инъекции

Инъекции — это семейство уязвимостей, в которых в приложение можно внедрить вредоносную нагрузку для достижения различных эффектов.

Корень всех инъекций — неправильная обработка входных данных программ.

Что является примерами входных данных программы?

  • Для веб-приложения — это поля ввода формы или загруженный файл.

  • Для VPN-сервера — это сетевые пакеты.

  • Для wifi-клиента — это, среди прочего, имена обнаруженных wifi-сетей.

  • Для почтового приложения — это письма, их метаданные и вложения.

  • Для чат-приложения — это сообщения, имена пользователей и медиа.

  • Для видеоплеера — это видеофайлы и файлы субтитров.

  • Для музыкального плеера — аудиофайлы и их метаданные.

  • Для терминала — это ввод пользователя и вывод приложений командной строки.

6.7 HTML-инъекции

HTML-инъекция — это уязвимость, при которой атакующий может внедрить произвольный HTML-код в ответы приложения, отображающего HTML-код.

Рисунок 6.1: HTML-инъекция

Она может использоваться для дефейса или обмана пользователей, заставляя их совершать вредные (для них) действия, например подменяя форму входа на вредоносную.

Вот пример псевдокода, уязвимого к HTML-инъекциям:

function comment(req, res) {
  let new_comment = req.body.comment;


    // comment is NOT sanitized when saved to database
    save_to_db(new_comment);


    let all_comments = db.find_comments();


    let html = "";


    // comments are NOT sanitized when rendered
    for comment in comments {
        html += "<div><p>" + comment + "</p></div>";
    }


    res.html(html);
}

6.8 SQL-инъекции

В 2010-е годы SQL-инъекции были в моде благодаря славе PHP и его небезопасным API. Теперь они встречаются всё реже и реже благодаря ORM и другим веб-фреймворкам, которые обеспечивают хорошую безопасность по умолчанию.

Рисунок 6.2: SQL-инъекция

Вот пример псевдокода, уязвимого к SQL-инъекции:

function get_comment(req, res) {
    let comment_id = req.query.id;


    // concataining strings to build SQL queries is FATAL
    let sql_query = "SELECT * FROM comments WHERE id = " + comment_id;


    let comment = db.execute_query(sql_query);


    let html = template.render(comment);


    res.html(html);
}

Который можно эксплуатировать следующим запросом:

GET https://kerkour.com/comments?id=1 UNION SELECT * FROM users

Также там есть еще пару подпунктов по инъекциям но все сюда не влезут, в общем как и раньше эти главы уже лежат на гитхабе.

И не забывайте голосовать в опросе https://forms.gle/35UtZ8Zea95UqKAL9

Теги:
-2
Комментарии7

Методичка по построению VPN, осень 2026

Осенью 2026 года за шесть недель заблокировали четыре зарубежных VPN сервера, и каждый следующий прожил меньше предыдущего, три последних заблокировали за пять дней. Все настроено серьезно: VLESS поверх REALITY с self-steal SNI на собственном домене, XHTTP, разные провайдеры, страны и ASN. Их все-равно заблокировали. Явление массовое. В начале ноября адреса зарубежных серверов живут от нескольких часов до 1-3 суток при любом протоколе. Смена IP помогает ненадолго.

Методичка по построению VPN, осень 2026

Публикации