Сегодня расскажу, как построил систему, которая клонирует и сканирует тысячи публичных GitHub-репозиториев — и находит в них утекшие секреты. В каждом репозитории я восстанавливал удаленные файлы, находил недостижимые объекты, распаковывал .pack-файлы и находил API-ключи, активные токены и учетки. А когда сообщил компаниям об утечках, заработал более $64 000 на баг-баунти. Читать далее
В прошлом посте я рассказал, как заработал $64 000, восстанавливая удаленные файлы в публичных репозиториях на GitHub. В этот раз я пошел еще дальше: исследовал все коммиты за последние пять лет, «стертые» разработчиками через git push --force. Спойлер: GitHub помнит их все.В этой статье покажу, как я вычислял такие коммиты с помощью GitHub Archive и вытаскивал из них секреты. А еще поделюсь open-source инструментом, который позволит вам самостоятельно искать подобные утечки. Читать далее
Intro Основам git мне пришлось научиться на своем первом месте работы (около трех лет назад). С тех пор я считал, что для полноценной работы нужно запомнить всего-лишь несколько команд: git add <path> git commit git checkout <path/branch> git checkout -b <new branch> И дополнительно: git push/pull git merge <branch> git rebase…
All versions of package git are vulnerable to Remote Code Execution (RCE) due to missing sanitization in the Git.git method, which allows execution of OS commands rather than just git commands. Steps to Reproduce 1. Create a file named exploit.js with the following content: js var Git = require("git").Git; var repo = new Git("repo-test"); var user_input = "version; date"; repo.git(user_input, function(err, result) { console.log(result); }) 2. In the same directory as…