Source code Review / SAST Tools
Last updated
Last updated
Leer & oefen AWS Hacking:HackTricks Opleiding AWS Red Team Expert (ARTE) Leer & oefen GCP Hacking: HackTricks Opleiding GCP Red Team Expert (GRTE)
Daar is 'n gratis pakket om PRs te hersien.
Dit is 'n Open Source hulpmiddel.
Kategori | Tale |
---|---|
GA | C# · Go · Java · JavaScript · JSX · JSON · PHP · Python · Ruby · Scala · Terraform · TypeScript · TSX |
Beta | Kotlin · Rust |
Eksperimenteel | Bash · C · C++ · Clojure · Dart · Dockerfile · Elixir · HTML · Julia · Jsonnet · Lisp · |
Jy kan ook die semgrep VSCode Extension gebruik om die bevindings binne VSCode te kry.
Daar is 'n installeerbare gratis weergawe.
Daar is 'n installeerbare gratis weergawe maar volgens die lisensie kan jy slegs die gratis codeQL weergawe in Open Source projekte gebruik.
Die eerste ding wat jy moet doen is om die databasis voor te berei (die kodeboom te skep) sodat die navrae later daaroor uitgevoer kan word.
Jy kan codeql toelaat om outomaties die taal van die repo te identifiseer en die databasis te skep
Dit sal gewoonlik 'n fout veroorsaak wat sê dat meer as een taal gespesifiseer is (of outomaties gedetecteer is). Kontroleer die volgende opsies om dit reg te stel!
Jy kan dit handmatig aandui deur die repo en die taal (lys van tale)
As jou repo meer as 1 taal gebruik, kan jy ook 1 DB per taal skep wat elke taal aandui.
Jy kan ook codeql
toelaat om alle tale vir jou te identifiseer en 'n DB per taal te skep. Jy moet dit 'n GITHUB_TOKEN gee.
Nou is dit uiteindelik tyd om die kode te ontleed
Onthou dat as jy verskeie tale gebruik het, 'n DB per taal in die pad wat jy gespesifiseer het, geskep sou gewees het.
Jy kan die bevindinge visualiseer in https://microsoft.github.io/sarif-web-component/ of deur die VSCode uitbreiding SARIF viewer te gebruik.
Jy kan ook die VSCode uitbreiding gebruik om die bevindinge binne VSCode te kry. Jy sal steeds 'n databasis handmatig moet skep, maar dan kan jy enige lêers kies en op Regsklik
-> CodeQL: Run Queries in Selected Files
klik.
Daar is 'n installeerbare gratis weergawe.
U kan ook die snyk VSCode Extension gebruik om bevindings binne VSCode te kry.
Dit is Open Source, maar lyk onondersteun.
Java (Maven en Android), Kotlin (Android), Swift (iOS), .NET Full Framework, C#, en Javascript (Node.js).
Gratis vir publieke repos.
yarn
pnpm
nodejsscan: Statiese sekuriteitskode skandeerder (SAST) vir Node.js toepassings aangedryf deur libsast en semgrep.
RetireJS: Die doel van Retire.js is om jou te help om die gebruik van JS-biblioteek weergawes met bekende kwesbaarhede te ontdek.
electronegativity: Dit is 'n hulpmiddel om miskonfigurasies en sekuriteitsanti-patrone in Electron-gebaseerde toepassings te identifiseer.
Bandit: Bandit is 'n hulpmiddel wat ontwerp is om algemene sekuriteitskwessies in Python-kode te vind. Om dit te doen, verwerk Bandit elke lêer, bou 'n AST daaruit, en voer toepaslike plugins teen die AST-knope uit. Sodra Bandit klaar is om al die lêers te skandeer, genereer dit 'n verslag.
safety: Safety kontroleer Python afhanklikhede vir bekende sekuriteitskwesies en stel die toepaslike herstelmaatreëls voor vir opgespoor kwesies. Safety kan op ontwikkelaarsmasjiene, in CI/CD pypelines en op produksiesisteme gedraai word.
Pyt: Nie onderhoude nie.
Taak | Opdrag |
---|---|
Voer Jar uit | java -jar [jar] |
Unzip Jar | unzip -d [uitvoer gids] [jar] |
Skep Jar | jar -cmf META-INF/MANIFEST.MF [uitvoer jar] * |
Base64 SHA256 | sha256sum [lêer] | cut -d' ' -f1 | xxd -r -p | base64 |
Verwyder Ondertekening | rm META-INF/.SF META-INF/.RSA META-INF/*.DSA |
Verwyder uit Jar | zip -d [jar] [lêer om te verwyder] |
Decompile klas | procyon -o . [pad na klas] |
Decompile Jar | procyon -jar [jar] -o [uitvoer gids] |
Compile klas | javac [pad na .java lêer] |
https://www.pluginvulnerabilities.com/plugin-security-checker/
Burp:
Spider en ontdek inhoud
Sitemap > filter
Sitemap > regsklik op domein > Betrokkenheid gereedskap > Vind skripte
waybackurls <domain> |grep -i "\.js" |sort -u
Sien sommige van die gereedskap genoem in 'Deobfuscate/Unpack' hieronder ook.
Nota: Dit mag nie moontlik wees om volledig te deobfuscate nie.
Vind en gebruik .map lêers:
As die .map lêers blootgestel is, kan hulle gebruik word om maklik te deobfuscate.
Gewoonlik, foo.js.map kaart na foo.js. Soek hulle handmatig.
Gebruik JS Miner om daarna te soek.
Verseker dat 'n aktiewe skandering uitgevoer word.
Lees 'Tips/Notes'
As gevind, gebruik Maximize om te deobfuscate.
Sonder .map lêers, probeer JSnice:
Verwysings: http://jsnice.org/ & https://www.npmjs.com/package/jsnice
Wenke:
As jy jsnice.org gebruik, klik op die opsiesknoppie langs die "Nicify JavaScript" knoppie, en deselecteer "Infer types" om rommel in die kode te verminder.
Verseker dat jy nie enige leë lyne voor die skrip laat nie, aangesien dit die deobfuscation proses kan beïnvloed en onakkurate resultate kan gee.
Vir 'n paar meer moderne alternatiewe tot JSNice, kan jy die volgende oorweeg:
Javascript decompiler, unpacker en unminify toolkit Wakaru is die Javascript decompiler vir moderne frontend. Dit bring die oorspronklike kode terug van 'n gebundelde en getranspileerde bron.
Deobfuscate obfuscator.io, unminify en unpack gebundelde javascript
Un-minify Javascript kode met behulp van ChatGPT Hierdie gereedskap gebruik groot taalmodelle (soos ChatGPT & llama2) en ander gereedskap om Javascript kode te un-minify. Let daarop dat LLMs geen strukturele veranderinge aanbring nie – hulle bied net leidrade om veranderlikes en funksies te hernoem. Die swaar werk word deur Babel op AST vlak gedoen om te verseker dat die kode 1-1 ekwivalent bly.
Gebruik LLMs om JavaScript veranderlike naam minification te keer
Gebruik console.log()
;
Vind die terugkeerwaarde aan die einde en verander dit na console.log(<packerReturnVariable>);
sodat die deobfuscated js gedruk word in plaas van uitgevoer te word.
Plak dan die gewysigde (en steeds obfuscated) js in https://jsconsole.com/ om die deobfuscated js in die konsole te sien.
Laastens, plak die deobfuscated uitvoer in https://prettier.io/playground/ om dit te beautify vir analise.
Nota: As jy steeds gepakte (maar verskillende) js sien, mag dit herhalend gepak wees. Herhaal die proses.
Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)