Привет хабр! Извиняюсь, что все это время я к сожалению не придерживался старого графика 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









