Source code Review / SAST Tools
Last updated
Last updated
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE) GCP Hacking'i öğrenin ve pratik yapın: HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)
PR'leri incelemek için ücretsiz bir paket bulunmaktadır.
Bu bir Açık Kaynak araçtır.
GA
C# · Go · Java · JavaScript · JSX · JSON · PHP · Python · Ruby · Scala · Terraform · TypeScript · TSX
Beta
Kotlin · Rust
Deneysel
Bash · C · C++ · Clojure · Dart · Dockerfile · Elixir · HTML · Julia · Jsonnet · Lisp ·
Ayrıca, bulguları VSCode içinde almak için semgrep VSCode Extension kullanabilirsiniz.
Yüklenebilir ücretsiz bir sürüm vardır.
Kurulabilir ücretsiz bir versiyonu vardır, ancak lisansa göre ücretsiz codeQL versiyonunu yalnızca Açık Kaynak projelerinde kullanabilirsiniz.
Yapmanız gereken ilk şey veritabanını hazırlamak (kod ağacını oluşturmak) ve daha sonra sorguların bunun üzerinde çalışmasını sağlamaktır.
Codeql'in repo dilini otomatik olarak tanımlamasına ve veritabanını oluşturmasına izin verebilirsiniz.
Bu genellikle bir hata tetikler ve birden fazla dilin belirtildiğini (veya otomatik olarak tespit edildiğini) söyler. Bunu düzeltmek için sonraki seçenekleri kontrol edin!
Bunu manuel olarak belirterek repo ve dili yapabilirsiniz (diller listesi)
Eğer reposunuz 1'den fazla dil kullanıyorsa, her dili belirterek her dil için 1 DB de oluşturabilirsiniz.
codeql
'in sizin için tüm dilleri tanımlamasına ve her dil için bir DB oluşturmasına da izin verebilirsiniz. Buna bir GITHUB_TOKEN vermeniz gerekiyor.
Artık kodu analiz etme zamanı geldi
Birden fazla dil kullandıysanız, her dil için bir DB belirtilen yolda oluşturulmuş olacaktır.
Bulguları https://microsoft.github.io/sarif-web-component/ adresinde veya VSCode uzantısı SARIF viewer kullanarak görselleştirebilirsiniz.
Ayrıca bulguları VSCode içinde almak için VSCode uzantısını kullanabilirsiniz. Yine de manuel olarak bir veritabanı oluşturmanız gerekecek, ancak ardından herhangi bir dosyayı seçip Sağ Tık
-> CodeQL: Seçilen Dosyalarda Sorguları Çalıştır
seçeneğine tıklayabilirsiniz.
Yüklenebilir ücretsiz bir sürüm bulunmaktadır.
You can also use the snyk VSCode Extension to get findings inside VSCode.
It's Açık Kaynak, but looks bakımsız.
Java (Maven ve Android), Kotlin (Android), Swift (iOS), .NET Full Framework, C#, ve Javascript (Node.js).
Açık repos için ücretsizdir.
yarn
pnpm
nodejsscan: Node.js uygulamaları için libsast ve semgrep tarafından desteklenen statik güvenlik kod tarayıcısı (SAST).
RetireJS: Retire.js'in amacı, bilinen güvenlik açıklarına sahip JS-kütüphane sürümlerinin kullanımını tespit etmenize yardımcı olmaktır.
electronegativity: Electron tabanlı uygulamalardaki yanlış yapılandırmaları ve güvenlik anti-paternlerini tanımlamak için bir araçtır.
Bandit: Bandit, Python kodundaki yaygın güvenlik sorunlarını bulmak için tasarlanmış bir araçtır. Bunu yapmak için Bandit her dosyayı işler, ondan bir AST oluşturur ve AST düğümleri üzerinde uygun eklentileri çalıştırır. Bandit tüm dosyaları taradıktan sonra bir rapor oluşturur.
safety: Safety, bilinen güvenlik açıkları için Python bağımlılıklarını kontrol eder ve tespit edilen açıklar için uygun düzeltmeleri önerir. Safety, geliştirici makinelerinde, CI/CD boru hatlarında ve üretim sistemlerinde çalıştırılabilir.
Pyt: Bakımı yapılmıyor.
Jar Çalıştır
java -jar [jar]
Jar Aç
unzip -d [çıkış dizini] [jar]
Jar Oluştur
jar -cmf META-INF/MANIFEST.MF [çıkış jar'ı] *
Base64 SHA256
sha256sum [dosya] | cut -d' ' -f1 | xxd -r -p | base64
İmzayı Kaldır
rm META-INF/.SF META-INF/.RSA META-INF/*.DSA
Jar'dan Sil
zip -d [jar] [silinecek dosya]
Sınıfı Decompile
procyon -o . [sınıfın yolu]
Jar'ı Decompile
procyon -jar [jar] -o [çıkış dizini]
Sınıfı Derle
javac [java dosyasının yolu]
https://www.pluginvulnerabilities.com/plugin-security-checker/
Burp:
İçeriği tarayın ve keşfedin
Sitemap > filtre
Sitemap > alan adına sağ tıklayın > Etkileşim araçları > Scriptleri bul
waybackurls <domain> |grep -i "\.js" |sort -u
Aşağıdaki 'Deobfuscate/Unpack' bölümünde bahsedilen bazı araçlara da bakın.
Not: Tamamen deobfuscate etmek mümkün olmayabilir.
.map dosyalarını bulun ve kullanın:
Eğer .map dosyaları açığa çıkmışsa, bunlar kolayca deobfuscate etmek için kullanılabilir.
Genellikle, foo.js.map foo.js'e karşılık gelir. Manuel olarak arayın.
Onları bulmak için JS Miner kullanın.
Aktif bir tarama yapıldığından emin olun.
'İpuçları/Notlar'ı okuyun.
Bulunduğunda, deobfuscate etmek için Maximize kullanın.
.map dosyaları olmadan, JSnice'ı deneyin:
Referanslar: http://jsnice.org/ & https://www.npmjs.com/package/jsnice
İpuçları:
jsnice.org kullanıyorsanız, "Nicify JavaScript" butonunun yanındaki seçenekler butonuna tıklayın ve "Infer types" seçeneğini kaldırarak kodu yorumlarla karıştırmamaya dikkat edin.
Scriptten önce boş satır bırakmadığınızdan emin olun, çünkü bu deobfuscate sürecini etkileyebilir ve yanlış sonuçlar verebilir.
JSNice için daha modern alternatifler arıyorsanız, aşağıdakilere göz atabilirsiniz:
Javascript decompiler, unpacker ve unminify aracı Wakaru, modern frontend için Javascript decompiler'dır. Paketlenmiş ve transpile edilmiş kaynaktan orijinal kodu geri getirir.
obfuscator.io'yu deobfuscate et, unminify et ve paketlenmiş javascript'i unpack et
ChatGPT kullanarak Javascript kodunu un-minify et Bu araç, Javascript kodunu un-minify etmek için büyük dil modelleri (ChatGPT & llama2 gibi) ve diğer araçları kullanır. LLM'lerin yapısal değişiklikler yapmadığını unutmayın - yalnızca değişkenleri ve fonksiyonları yeniden adlandırmak için ipuçları sağlar. Ağır iş, kodun 1-1 eşdeğer kalmasını sağlamak için AST seviyesinde Babel tarafından yapılır.
JavaScript değişken adı minifikasyonunu tersine çevirmek için LLM'leri kullanma
console.log()
kullanın;
Sonunda dönen değeri bulun ve console.log(<packerReturnVariable>);
olarak değiştirin, böylece deobfuscated js çalıştırılmak yerine yazdırılır.
Ardından, değiştirilmiş (ve hala obfuscated) js'i https://jsconsole.com/ sayfasına yapıştırarak deobfuscated js'in konsola yazdırıldığını görün.
Son olarak, deobfuscated çıktıyı https://prettier.io/playground/ sayfasına yapıştırarak analiz için güzelleştirin.
Not: Eğer hala paketlenmiş (ama farklı) js görüyorsanız, bu muhtemelen özyinelemeli olarak paketlenmiştir. Süreci tekrarlayın.
devalias'ın GitHub Gists:
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE) GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)