Domanda leggermente non ortodossa qui:Richieste HTTP e moduli Apache: Vettori di attacco creativi
Attualmente sto cercando di rompere un Apache con una manciata di moduli personalizzati.
Ciò che ha generato il test è che Apache internamente inoltra richieste che considera troppo grandi (ad esempio 1 MB cestino) ai moduli collegati in modo appropriato, costringendoli a gestire i dati inutili e la mancanza di gestione nei moduli personalizzati ha causato Apache nella sua interezza per andare in fiamme. Ahi, ahi, ahi.
Questo particolare problema è stato risolto per fortuna, ma è sorta la questione se ci possano essere altre vulnerabilità simili.
In questo momento ho uno strumento a mia disposizione che mi consente di inviare una richiesta HTTP non elaborata al server (o meglio, dati grezzi attraverso una connessione TCP stabilita che potrebbe essere interpretata come una richiesta HTTP se seguisse la forma di uno , ad esempio "OTTIENI ...") e sto cercando di trovare altre idee. (Attacchi a livello di TCP come Slowloris e Nkiller2 sono non la mia attenzione in questo momento.)
Qualcuno ha un paio di buone idee come per confondere moduli personalizzati del server fino al punto di server auto-immolazione?
- Broken UTF-8? (Anche se dubito che Apache si preoccupi della codifica - immagino che si limiti a manipolare i byte non elaborati.)
- Roba che è a malapena troppo lunga, seguita da un byte 0, seguita da una cianfrusaglia?
- eccetera
Io non mi considero un ottimo tester (sto facendo questo per necessità e mancanza di manodopera, io, purtroppo, non hanno nemmeno una comprensione più di base dei meccanismi interni di Apache che mi avrebbe aiutato lungo), motivo per cui spero in una risposta perspicace o due o tre. Forse alcuni di voi hanno fatto test simili per i propri progetti?
(Se StackOverflow non è il posto giusto per questa domanda, mi scuso. Non so dove altro metterlo.)
Grazie per la risposta! Questo suona * estremamente utile *. Per quanto riguarda i tuoi ultimi due punti: Stiamo cercando di ottenere qualcuno in grado di rivedere il codice, ma purtroppo, è un mese in, finora, e senza fortuna. Penseresti che trovare un auditor di codice C sarebbe più facile di così. :) E il pentimento sarà fatto, solo una tacca dopo; lo sviluppo/testing è un po 'a cascata in questo, quindi lo sviluppo cerca di spingere alcuni test prima che le cose vengano passate a testare. – pinkgothic
re waterfall/pentest, probabilmente dovresti essere in grado di configurare un server di sviluppo, anche solo per eseguire un pentest/fuzzing iniziale limitato. Potrebbe essere un po 'una duplicazione degli sforzi, ma ho scoperto che spesso vale la pena farlo il prima possibile - a meno che non ci sia una politica intorno alla proprietà e così ... In ogni caso, se stai progettando comunque una revisione del codice, la sua bene per spingere il pentest fino a dopo, comunque. – AviD
Capito che accetterei la tua risposta dato che è più una * risposta * di The Rook's (vorrei che ci fosse un modo per dividere una taglia). :) (PS ti contatteremo via linkedin (per lo meno per sgomberare i commenti di stackoverflow) ma non uso quel sito e apparentemente ho bisogno di pagare per farlo, che sembra eccessivo per un sito I, beh, don usare.) – pinkgothic