Source code Review / SAST Tools
Last updated
Last updated
Ucz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Ucz się i ćwicz Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Jest darmowy pakiet do przeglądania PR-ów.
To narzędzie open source.
GA
C# · Go · Java · JavaScript · JSX · JSON · PHP · Python · Ruby · Scala · Terraform · TypeScript · TSX
Beta
Kotlin · Rust
Eksperymentalny
Bash · C · C++ · Clojure · Dart · Dockerfile · Elixir · HTML · Julia · Jsonnet · Lisp ·
Możesz również użyć rozszerzenia semgrep VSCode, aby uzyskać wyniki wewnątrz VSCode.
Istnieje instalowalna darmowa wersja.
Istnieje darmowa wersja do zainstalowania, ale zgodnie z licencją możesz używać darmowej wersji codeQL tylko w projektach Open Source.
Pierwszą rzeczą, którą musisz zrobić, to przygotować bazę danych (utworzyć drzewo kodu), aby później zapytania mogły być na niej uruchamiane.
Możesz pozwolić codeql na automatyczne zidentyfikowanie języka repozytorium i utworzenie bazy danych
To zwykle spowoduje błąd mówiący, że określono więcej niż jeden język (lub został automatycznie wykryty). Sprawdź następne opcje, aby to naprawić!
Możesz to zrobić ręcznie wskazując repo i język (lista języków)
Jeśli twoje repozytorium używa więcej niż 1 języka, możesz również stworzyć 1 bazę danych na język, wskazując każdy język.
Możesz również pozwolić codeql
na identyfikację wszystkich języków za Ciebie i utworzenie bazy danych dla każdego języka. Musisz podać GITHUB_TOKEN.
Teraz w końcu czas na analizę kodu
Pamiętaj, że jeśli użyłeś kilku języków, baza danych na każdy język zostanie utworzona w podanej przez Ciebie ścieżce.
Możesz wizualizować wyniki w https://microsoft.github.io/sarif-web-component/ lub używając rozszerzenia VSCode SARIF viewer.
Możesz również użyć rozszerzenia VSCode, aby uzyskać wyniki wewnątrz VSCode. Nadal będziesz musiał ręcznie utworzyć bazę danych, ale potem możesz wybrać dowolne pliki i kliknąć Prawy przycisk myszy
-> CodeQL: Uruchom zapytania w wybranych plikach
Istnieje darmowa wersja do zainstalowania.
Możesz również użyć rozszerzenia snyk VSCode, aby uzyskać wyniki wewnątrz VSCode.
Jest Open Source, ale wygląda na nieutrzymywane.
Java (Maven i Android), Kotlin (Android), Swift (iOS), .NET Full Framework, C# i Javascript (Node.js).
Darmowe dla publicznych repozytoriów.
yarn
pnpm
nodejsscan: Statyczny skaner bezpieczeństwa kodu (SAST) dla aplikacji Node.js zasilany przez libsast i semgrep.
RetireJS: Celem Retire.js jest pomoc w wykrywaniu użycia wersji bibliotek JS z znanymi lukami.
electronegativity: To narzędzie do identyfikacji błędnych konfiguracji i wzorców antybezpieczeństwa w aplikacjach opartych na Electronie.
Bandit: Bandit to narzędzie zaprojektowane do znajdowania powszechnych problemów z bezpieczeństwem w kodzie Pythona. Aby to zrobić, Bandit przetwarza każdy plik, buduje z niego AST i uruchamia odpowiednie wtyczki na węzłach AST. Gdy Bandit zakończy skanowanie wszystkich plików, generuje raport.
safety: Safety sprawdza zależności Pythona pod kątem znanych luk w zabezpieczeniach i sugeruje odpowiednie rozwiązania dla wykrytych luk. Safety można uruchomić na maszynach deweloperów, w pipeline'ach CI/CD oraz na systemach produkcyjnych.
Pyt: Nieutrzymywane.
Wykonaj Jar
java -jar [jar]
Rozpakuj Jar
unzip -d [output directory] [jar]
Utwórz Jar
jar -cmf META-INF/MANIFEST.MF [output jar] *
Base64 SHA256
sha256sum [file] | cut -d' ' -f1 | xxd -r -p | base64
Usuń podpis
rm META-INF/.SF META-INF/.RSA META-INF/*.DSA
Usuń z Jara
zip -d [jar] [file to remove]
Dekompiluj klasę
procyon -o . [path to class]
Dekompiluj Jar
procyon -jar [jar] -o [output directory]
Skompiluj klasę
javac [path to .java file]
https://www.pluginvulnerabilities.com/plugin-security-checker/
Burp:
Spider i odkryj zawartość
Sitemap > filtr
Sitemap > kliknij prawym przyciskiem na domenę > Narzędzia zaangażowania > Znajdź skrypty
waybackurls <domain> |grep -i "\.js" |sort -u
Zobacz niektóre z narzędzi wymienionych w 'Deobfuscate/Unpack' poniżej.
Uwaga: Może nie być możliwe pełne deobfuskowanie.
Znajdź i użyj plików .map:
Jeśli pliki .map są dostępne, można je wykorzystać do łatwego deobfuskowania.
Zwykle foo.js.map mapuje do foo.js. Ręcznie ich szukaj.
Użyj JS Miner, aby ich poszukać.
Upewnij się, że przeprowadzono aktywne skanowanie.
Przeczytaj 'Tips/Notes'
Jeśli znajdziesz, użyj Maximize, aby deobfuskować.
Bez plików .map, spróbuj JSnice:
Odnośniki: http://jsnice.org/ & https://www.npmjs.com/package/jsnice
Wskazówki:
Jeśli używasz jsnice.org, kliknij przycisk opcji obok przycisku "Nicify JavaScript" i odznacz "Infer types", aby zredukować bałagan w kodzie z komentarzami.
Upewnij się, że nie zostawiasz pustych linii przed skryptem, ponieważ może to wpłynąć na proces deobfuskacji i dać niedokładne wyniki.
Dla niektórych nowoczesnych alternatyw dla JSNice, możesz spojrzeć na następujące:
Javascript decompiler, unpacker i unminify toolkit Wakaru to dekompilator Javascript dla nowoczesnego frontendu. Przywraca oryginalny kod z zbundlowanego i transpilego źródła.
Deobfuskacja obfuscator.io, unminify i unpack zbundlowanego javascriptu
Un-minify kod Javascript używając ChatGPT To narzędzie wykorzystuje duże modele językowe (jak ChatGPT i llama2) oraz inne narzędzia do un-minify kodu Javascript. Zauważ, że LLM nie dokonują żadnych zmian strukturalnych – tylko dostarczają wskazówki do zmiany nazw zmiennych i funkcji. Ciężka praca wykonywana jest przez Babel na poziomie AST, aby zapewnić, że kod pozostaje 1-1 równoważny.
Używanie LLM do odwracania minifikacji nazw zmiennych JavaScript
Użyj console.log()
;
Znajdź wartość zwracaną na końcu i zmień ją na console.log(<packerReturnVariable>);
, aby deobfuskowany js był drukowany zamiast wykonywany.
Następnie wklej zmodyfikowany (i nadal obfuskowany) js do https://jsconsole.com/, aby zobaczyć deobfuskowany js zalogowany w konsoli.
Na koniec wklej deobfuskowany wynik do https://prettier.io/playground/, aby go upiększyć do analizy.
Uwaga: Jeśli nadal widzisz spakowany (ale inny) js, może być on rekurencyjnie spakowany. Powtórz proces.
Ucz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Ucz się i ćwicz Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)