Source code Review / SAST Tools
Last updated
Last updated
Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Kuna kifurushi cha bure cha kukagua PRs.
Ni zana ya Open Source.
Unaweza pia kutumia semgrep VSCode Extension kupata matokeo ndani ya VSCode.
Kuna toleo la bure linaloweza kusakinishwa.
Kuna toleo la bure linaloweza kusakinishwa lakini kulingana na leseni unaweza kutumia tu toleo la bure la codeQL katika miradi ya Open Source.
Jambo la kwanza unahitaji kufanya ni kuandaa hifadhidata (unda mti wa msimbo) ili baadaye maswali yafanywe juu yake.
Unaweza kuruhusu codeql kutambua kiotomatiki lugha ya repo na kuunda hifadhidata
Hii kwa kawaida itasababisha kosa linalosema kwamba lugha zaidi ya moja ilitolewa (au kugunduliwa kiotomatiki). Angalia chaguzi zifuatazo ili kurekebisha hili!
Unaweza kufanya hivi kwa mikono ukionyesha repo na lugha (orodha ya lugha)
Ikiwa repo yako inatumia zaidi ya lugha 1, unaweza pia kuunda DB 1 kwa kila lugha ukionyesha kila lugha.
Unaweza pia kuruhusu codeql
kutambua lugha zote kwa ajili yako na kuunda DB kwa kila lugha. Unahitaji kumpa GITHUB_TOKEN.
Sasa hatimaye ni wakati wa kuchanganua msimbo
Kumbuka kwamba ikiwa ulitumia lugha kadhaa, DB kwa kila lugha ingekuwa imeundwa katika njia uliyotaja.
Unaweza kuona matokeo katika https://microsoft.github.io/sarif-web-component/ au kutumia nyongeza ya VSCode SARIF viewer.
Pia unaweza kutumia nyongeza ya VSCode kupata matokeo ndani ya VSCode. Bado utahitaji kuunda database kwa mikono, lakini kisha unaweza kuchagua faili zozote na kubonyeza Right Click
-> CodeQL: Run Queries in Selected Files
Kuna toleo la bure linaloweza kusakinishwa.
You can also use the snyk VSCode Extension kupata matokeo ndani ya VSCode.
Ni Open Source, lakini inaonekana haijatunzwa.
Java (Maven na Android), Kotlin (Android), Swift (iOS), .NET Full Framework, C#, na Javascript (Node.js).
Bila malipo kwa repo za umma.
yarn
pnpm
nodejsscan: Skana wa usalama wa msimbo wa statiki (SAST) kwa programu za Node.js zinazotumiwa na libsast na semgrep.
RetireJS: Lengo la Retire.js ni kukusaidia kugundua matumizi ya toleo la maktaba ya JS yenye udhaifu unaojulikana.
electronegativity: Ni chombo cha kutambua makosa ya usanidi na mifumo mibaya ya usalama katika programu zinazotumia Electron.
Bandit: Bandit ni chombo kilichoundwa kutafuta masuala ya kawaida ya usalama katika msimbo wa Python. Ili kufanya hivyo, Bandit inachakata kila faili, inajenga AST kutoka kwake, na inatekeleza nyongeza zinazofaa dhidi ya voz nodes za AST. Mara Bandit inapokamilisha skanning ya faili zote, inaunda ripoti.
safety: Safety inakagua utegemezi wa Python kwa udhaifu wa usalama unaojulikana na inapendekeza marekebisho sahihi kwa udhaifu ulio gundulika. Safety inaweza kuendeshwa kwenye mashine za waendelezaji, katika mchakato wa CI/CD na kwenye mifumo ya uzalishaji.
Pyt: Haijatunzwa.
https://www.pluginvulnerabilities.com/plugin-security-checker/
Burp:
Spider na gundua maudhui
Sitemap > filter
Sitemap > bonyeza kulia kwenye domain > Zana za ushirikiano > Tafuta scripts
waybackurls <domain> |grep -i "\.js" |sort -u
Angalia baadhi ya zana zilizotajwa katika 'Deobfuscate/Unpack' hapa chini pia.
Kumbuka: Inaweza kuwa haiwezekani kuondoa kabisa obfuscation.
Tafuta na tumia .map files:
Ikiwa .map files zimefunuliwa, zinaweza kutumika kwa urahisi kuondoa obfuscation.
Kwa kawaida, foo.js.map inahusiana na foo.js. Tafuta kwa mikono.
Tumia JS Miner kutafuta.
Hakikisha skana hai inafanywa.
Soma 'Tips/Notes'
Ikiwa imepatikana, tumia Maximize kuondoa obfuscation.
Bila .map files, jaribu JSnice:
Marejeleo: http://jsnice.org/ & https://www.npmjs.com/package/jsnice
Vidokezo:
Ikiwa unatumia jsnice.org, bonyeza kitufe cha chaguzi kilicho karibu na kitufe cha "Nicify JavaScript", na uondoe "Infer types" ili kupunguza machafuko katika msimbo.
Hakikisha huachi mistari yoyote ya tupu kabla ya script, kwani inaweza kuathiri mchakato wa kuondoa obfuscation na kutoa matokeo yasiyo sahihi.
Kwa baadhi ya mbadala za kisasa zaidi kwa JSNice, unaweza kutaka kuangalia yafuatayo:
Javascript decompiler, unpacker na unminify toolkit Wakaru ni decompiler ya Javascript kwa frontend ya kisasa. Inarejesha msimbo wa asili kutoka kwa chanzo kilichofungwa na kilichotranspiled.
Deobfuscate obfuscator.io, unminify na unpack javascript iliyofungwa
Un-minify Javascript code kwa kutumia ChatGPT Zana hii inatumia mifano mikubwa ya lugha (kama ChatGPT & llama2) na zana nyingine kuondoa un-minify Javascript code. Kumbuka kwamba LLMs hazifanyi mabadiliko yoyote ya muundo – zinatoa tu vidokezo vya kubadilisha majina ya mabadiliko na kazi. Kazi nzito inafanywa na Babel kwenye kiwango cha AST ili kuhakikisha msimbo unabaki sawa.
Kutumia LLMs kubadilisha majina ya mabadiliko ya Javascript
Tumia console.log()
;
Tafuta thamani ya kurudi mwishoni na ibadilishe kuwa console.log(<packerReturnVariable>);
ili js iliyondolewa obfuscation iweze kuchapishwa badala ya kutekelezwa.
Kisha, bandika js iliyobadilishwa (na bado imefichwa) kwenye https://jsconsole.com/ ili kuona js iliyondolewa obfuscation ikichapishwa kwenye console.
Mwishowe, bandika matokeo yaliyondolewa obfuscation kwenye https://prettier.io/playground/ ili kuipamba kwa uchambuzi.
Kumbuka: Ikiwa bado unaona js iliyofungwa (lakini tofauti), inaweza kuwa imefungwa kwa kurudi. Rudia mchakato.
Kategoria | Lugha |
---|---|
Task | Command |
---|---|
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
GA
C# · Go · Java · JavaScript · JSX · JSON · PHP · Python · Ruby · Scala · Terraform · TypeScript · TSX
Beta
Kotlin · Rust
Kijaribio
Bash · C · C++ · Clojure · Dart · Dockerfile · Elixir · HTML · Julia · Jsonnet · Lisp ·
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]