I montanti recenti hanno corretto una vulnerabilità che consente agli aggressori di eseguire codice remoto. A quanto pare, non patch questo è come dare black-hats un tappeto rosso di benvenuto con un carrozzone: -/Struts 2 S2-016 Mitigazione della vulnerabilità fino all'aggiornamento
http://struts.apache.org/release/2.3.x/docs/s2-016.html
In sostanza si permette l'esecuzione di comandi attacco come questo:
azione Legit: http://host/struts2-showcase/employee/save.action?redirect:%25{3*4}
azione Exploited: http://host/struts2-showcase/employee/save.action?redirect:%25{(new+java.lang.ProcessBuilder(new+java.lang.String[]{'command','goes','here'})).start()}
Anche se so che l'aggiornamento dovrebbe essere fatto al più presto, il più presto possibile significherà po 'di tempo da quando il nostro codice di base utilizza vecchio Struts versioni e plugin.
che richiederanno un po 'di refactoring di aggiornare i montanti 2 biblioteche, poi quelli bisogno di essere testati ecc
La mia domanda è se Perciò qualcuno ha qualche idea per fermare questa vulnerabilità venga eseguito? Questo sarà solo finché non saremo in grado di aggiornare.
Mi chiedevo se scrivere un intercettore per disinfettare l'URL prima di essere valutato contro l'OGNL è possibile e in tal caso mitigherebbe questo problema?
Un'altra idea che ho avuto è stata quella di utilizzare il gestore della sicurezza Java in qualche modo per arrestare le chiamate arbitrarie dei processi, è possibile? Rimboccherà temporaneamente il buco?
Il server utilizzato è jBoss se qualcuno lo ritiene pertinente.
Avete qualche server di fronte a jBoss, forse apache? Che ne dici di limitare l'accesso a certi uri-s in esso. –
Vuoi dire qualcosa di un bilanciamento del carico o un firewall con funzionalità di restrizione URL? – Thihara
Questo o un proxy inverso, come Apache. –