GitHub für Bug-Bounty-Jäger
Für Bug-Bounty-Jäger können GitHub-Repositories eine Vielzahl potenziell nützlicher Informationen offenbaren. Bei Zielen, die nicht immer Open Source sind, kann es zu Problemen kommen. Manchmal werden von Organisationsmitgliedern und ihren Open-Source-Initiativen fälschlicherweise Informationen preisgegeben, die gegen das Zielunternehmen verwendet werden könnten. In diesem Artikel gebe ich Ihnen einen kurzen Überblick, der Ihnen den Einstieg in die Überprüfung von GitHub-Repositories auf Schwachstellen und die Durchführung einer allgemeinen Erkundung erleichtern soll.
1-Massen-Klonen
Sie können Ihre Recherche einfach auf github.com durchführen. Um lokale Tests zu ermöglichen, empfehle ich jedoch, jedes Ziel-Repository zu klonen. Der GitHubCloner von @mazen160 ist ein fantastisches Produkt. Sie müssen lediglich das Skript ausführen, um loszulegen.
$ python githubcloner.py --org organization -o /tmp/output
Es ist wichtig, dass Sie das angestrebte Projekt tatsächlich verstehen, bevor Sie mit der statischen Analyse beginnen. Verwenden Sie die Hauptfunktionen, während Sie das Projekt ausführen. Ich bezeichne dies deshalb als „Jobert-Schritt“, weil ich gehört habe, dass Jobert vor Beginn jeder Jagd das Projekt nutzt und sich ein gutes Verständnis des Ziels verschafft, bevor er nach Schwachstellen sucht.
3- Manuelle Analyse
In dieser Situation gilt das Sprichwort „Lerne, es zu schaffen, dann zerbrich es“ . Wenn Sie eine Programmiersprache lernen können, sollten Sie in der Lage sein, die Sicherheitsvorkehrungen zu verstehen, die Sie treffen und vermeiden sollten.
Sie können mit dem Grepping beginnen, sobald Sie mit dem Ziel und seiner Architektur vertraut sind. Suchen Sie nach Schlüsselwörtern, die Sie interessieren, mit denen Sie vertraut sind oder von denen Sie wissen, dass Entwickler häufig Fehler machen.
Hier ist eine grundlegende Liste einiger Suchbegriffe, die ich bei einer ersten umfassenden Bewertung verwenden werde:
- API und Schlüssel. (Besorgen Sie sich weitere Endpunkte und finden Sie API-Schlüssel.)
- Zeichen
- Geheimnis
- MACHEN
- Passwort
- verletzlich
- http:// & https://
- CSRF
- willkürlich
- Hash
- MD5, SHA-1, SHA-2 usw.
- HMAC
Ein weiterer wichtiger Schritt ist die Überprüfung des Commit-Verlaufs. Sie werden überrascht sein, wie viele Informationen Sie aus Commits gewinnen können. Ich habe gesehen, dass Mitwirkende fälschlicherweise glaubten, sie hätten Anmeldeinformationen entfernt, während diese im Commit-Verlauf verblieben. Aufgrund der Git-Geschichte habe ich alte Endpunkte entdeckt, die noch funktionieren. Abgesehen von aktuellen Bedenken stoßen Sie möglicherweise auf historische Probleme, die aufgrund alter Commits vermieden werden könnten.
4- Werkzeuge
Manchmal kann die Automatisierung langweiliger Aufgaben dabei helfen, einen grundlegenden Überblick darüber zu erhalten, wonach Sie suchen müssen. Denken Sie unbedingt daran, dass Sie Scanergebnisse niemals kopieren und in Berichte einfügen sollten. Sie werden viele Fehlalarme erhalten, daher sollten Sie potenzielle Probleme immer sorgfältig untersuchen, um sicherzustellen, dass sie ausgenutzt werden können.
Das wichtigste Tool, das ich bei der Verfolgung von Python-Projekten verwende, ist Bandit .
Bandit erkennt häufige Probleme, liefert jedoch häufig falsch positive Ergebnisse oder niedrig hängende Ergebnisse. Verwenden Sie es daher mit Vorsicht. Ohne Zweifel sollte man sich nicht darauf verlassen.
$ bandit -r path/to/your/code -ll
Snyk.io ist ein wunderbares Tool zur Überprüfung von Abhängigkeiten. Die Plattform unterstützt eine Vielzahl von Sprachen.
Zur Aufklärung schlagen viele Forscher die Verwendung von Gitrob vor . Dieses Tool sucht in öffentlichen GitHub-Repositories nach vertraulichen Informationen.
$ gitrob analyze acme,johndoe,janedoe
$ truffleHog https://github.com/dxa4481/truffleHog.git
Für Ruby on Rails-Apps empfehle ich Brakeman . Brakeman ist ein Sicherheitsscanner mit statischer Analyse, der eine Vielzahl verschiedener Sicherheitsprobleme im Code finden kann.
Verwenden Sie LinkFinder von Gerben Javado , um Endpunkte in den JS-Dateien des Repositorys zu finden.
$ python linkfinder.py -i 'path/to/your/code/*.js' -r ^/api/ -o cli
OK, im Ernst, betreiben Sie kein Social Engineering bei den Projektbesitzern.
Melden Sie Ihre Ergebnisse
Wie immer, wenn es um Bug-Bounty-Jagd geht, lesen Sie die Richtlinien des Programms sorgfältig durch. Sehr selten akzeptiert ein Programm Berichte über GitHub. Kontaktieren Sie das Sicherheitsteam oder nutzen Sie nach Möglichkeit eine Bug-Bounty-Plattform wie HackerOne oder Bugcrowd
Nebenbei bemerkt ist das Coole an White-Box-Tests, dass es einfacher sein kann, einen Fix vorzuschlagen oder einen Patch einzureichen, da Sie Zugriff auf den Code haben.
DANKE, DASS SIE DIES LESEN!

![Was ist überhaupt eine verknüpfte Liste? [Teil 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































