Source code Review / SAST Tools
Last updated
Last updated
Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Postoji besplatan paket za pregled PR-ova.
To je alat otvorenog koda.
GA
C# · Go · Java · JavaScript · JSX · JSON · PHP · Python · Ruby · Scala · Terraform · TypeScript · TSX
Beta
Kotlin · Rust
Eksperimentalni
Bash · C · C++ · Clojure · Dart · Dockerfile · Elixir · HTML · Julia · Jsonnet · Lisp ·
Možete takođe koristiti semgrep VSCode ekstenziju da dobijete nalaze unutar VSCode-a.
Postoji instalabilna besplatna verzija.
Postoji besplatna verzija koja se može instalirati, ali prema licenci možete koristiti besplatnu verziju codeQL samo u Open Source projektima.
Prva stvar koju treba da uradite je da pripremite bazu podataka (napravite stablo koda) kako bi se kasnije upiti izvršavali nad njom.
Možete omogućiti codeql da automatski identifikuje jezik repozitorijuma i kreira bazu podataka
Ovo obično izaziva grešku koja kaže da je navedeno više od jednog jezika (ili je automatski otkriven). Proverite sledeće opcije da biste to ispravili!
Možete to učiniti ručno označavajući repo i jezik (lista jezika)
Ako vaš repozitorij koristi više od 1 jezika, možete takođe kreirati 1 DB po jeziku označavajući svaki jezik.
Takođe možete omogućiti codeql
da identifikuje sve jezike umesto vas i kreira bazu podataka po jeziku. Treba da mu date GITHUB_TOKEN.
Sada je konačno vreme da analizirate kod
Zapamtite da ako ste koristili nekoliko jezika, baza podataka po jeziku biće kreirana u putanji koju ste naveli.
Možete vizualizovati nalaze na https://microsoft.github.io/sarif-web-component/ ili koristeći VSCode ekstenziju SARIF viewer.
Takođe možete koristiti VSCode ekstenziju da dobijete nalaze unutar VSCode-a. I dalje ćete morati ručno da kreirate bazu podataka, ali onda možete izabrati bilo koje datoteke i kliknuti na Desni Klik
-> CodeQL: Run Queries in Selected Files
Postoji instalabilna besplatna verzija.
Možete takođe koristiti snyk VSCode Extension da dobijete nalaze unutar VSCode.
To je Open Source, ali izgleda neodržavano.
Java (Maven i Android), Kotlin (Android), Swift (iOS), .NET Full Framework, C#, i Javascript (Node.js).
Besplatno za javne repozitorijume.
yarn
pnpm
nodejsscan: Statistički skener bezbednosti koda (SAST) za Node.js aplikacije pokretan libsast i semgrep.
RetireJS: Cilj Retire.js je da vam pomogne da otkrijete korišćenje verzija JS biblioteka sa poznatim ranjivostima.
electronegativity: To je alat za identifikaciju loših konfiguracija i sigurnosnih anti-šablona u aplikacijama zasnovanim na Electron-u.
Bandit: Bandit je alat dizajniran za pronalaženje uobičajenih sigurnosnih problema u Python kodu. Da bi to postigao, Bandit obrađuje svaku datoteku, gradi AST iz nje i pokreće odgovarajuće dodatke protiv AST čvorova. Kada Bandit završi sa skeniranjem svih datoteka, generiše izveštaj.
safety: Safety proverava Python zavisnosti na poznate sigurnosne ranjivosti i predlaže odgovarajuće mere za otklanjanje otkrivenih ranjivosti. Safety se može pokrenuti na razvojnim mašinama, u CI/CD pipelinima i na produkcionim sistemima.
Pyt: Neodržavan.
Execute Jar
java -jar [jar]
Unzip Jar
unzip -d [output directory] [jar]
Create Jar
jar -cmf META-INF/MANIFEST.MF [output jar] *
Base64 SHA256
sha256sum [file] | cut -d' ' -f1 | xxd -r -p | base64
Remove Signing
rm META-INF/.SF META-INF/.RSA META-INF/*.DSA
Delete from Jar
zip -d [jar] [file to remove]
Decompile class
procyon -o . [path to class]
Decompile Jar
procyon -jar [jar] -o [output directory]
Compile class
javac [path to .java file]
https://www.pluginvulnerabilities.com/plugin-security-checker/
Burp:
Spider i otkrijte sadržaj
Sitemap > filter
Sitemap > desni klik na domen > Alati za angažovanje > Pronađi skripte
waybackurls <domain> |grep -i "\.js" |sort -u
Pogledajte neke od alata pomenutih u 'Deobfuscate/Unpack' ispod.
Napomena: Možda neće biti moguće potpuno deobfuskovati.
Pronađite i koristite .map datoteke:
Ako su .map datoteke izložene, mogu se koristiti za lako deobfuskovanje.
Obično, foo.js.map se mapira na foo.js. Ručno ih potražite.
Koristite JS Miner da ih potražite.
Osigurajte da se aktivno skeniranje sprovodi.
Pročitajte 'Tips/Notes'
Ako se pronađu, koristite Maximize za deobfuskovanje.
Bez .map datoteka, pokušajte sa JSnice:
Reference: http://jsnice.org/ & https://www.npmjs.com/package/jsnice
Saveti:
Ako koristite jsnice.org, kliknite na dugme opcija pored dugmeta "Nicify JavaScript" i isključite "Infer types" da smanjite nered u kodu sa komentarima.
Osigurajte da ne ostavljate prazne linije pre skripte, jer to može uticati na proces deobfuskovanja i dati netačne rezultate.
Za neke modernije alternative JSNice, možda biste želeli da pogledate sledeće:
Javascript dekompajler, raspakivač i alat za unminify Wakaru je Javascript dekompajler za moderni frontend. Vraća originalni kod iz pakovanog i transpiled izvora.
Deobfuskacija obfuscator.io, unminify i raspakivanje pakovanog javascript-a
Un-minify Javascript kod koristeći ChatGPT Ovaj alat koristi velike jezičke modele (kao što su ChatGPT i llama2) i druge alate za un-minify Javascript kod. Imajte na umu da LLM-ovi ne vrše nikakve strukturne promene – samo daju savete za preimenovanje varijabli i funkcija. Teži deo posla obavlja Babel na AST nivou kako bi se osiguralo da kod ostane 1-1 ekvivalentan.
Korišćenje LLM-ova za obrnuto minifikovanje imena varijabli u JavaScript-u
Koristite console.log()
;
Pronađite povratnu vrednost na kraju i promenite je u console.log(<packerReturnVariable>);
tako da se deobfuskovani js odštampa umesto da se izvrši.
Zatim, nalepite modifikovani (i dalje obfuskovani) js u https://jsconsole.com/ da vidite deobfuskovani js odštampan u konzoli.
Na kraju, nalepite deobfuskovani izlaz u https://prettier.io/playground/ da ga ulepšate za analizu.
Napomena: Ako i dalje vidite pakovani (ali drugačiji) js, možda je rekurzivno pakovan. Ponovite proces.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)