In particolare, perché i proxy di attacco più popolari sono scritti in java? C'è qualche particolare aspetto di sicurezza nel design del linguaggio java che rende più semplici strumenti di scrittura come questi? Più facile da mantenere e aggiornare?
Motivo per linguaggi di alto livello: Diciamo che stai scrivendo un programma scritto che viene eseguito sotto la macchina degli attaccanti che può inviare un attacco contro una macchina remota o altro. Non ha senso scrivere in un linguaggio di basso livello, è necessario più tempo per gestirlo. Quindi, puoi anche scriverlo in un linguaggio di alto livello che usa un linguaggio bytecode come .NET o Java ecc. Quindi è multipiattaforma, facile da gestire e scalabile.
Motivo per lingue di basso livello o codice nativo: Diciamo che stai scrivendo una qualche forma di codice pentest da eseguire sotto la macchina delle vittime che idealmente vuoi meno dipendenze, quindi è probabile che venga eseguito con più macchine. Se usassimo un linguaggio di alto livello come Java, allora abbiamo bisogno che tutte le vittime abbiano installato Java VM.
Se parliamo di piattaforma Windows, altri motivi per il codice nativo potrebbero essere sfruttando le finestre interne è molto più difficile da fare con i linguaggi bytecode. Bytecode viene eseguito solo sotto ring 3 dove come lingue native come assembly, C e C ++ puoi scrivere driver da eseguire agli anelli inferiori.
Quindi, il riepilogo dipende solo da cosa è la tua codifica.
Leggi altre domande sui tag java web-browser proxy