È possibile l'iniezione di codice in .NET?

3

Mi chiedo se è possibile l'iniezione di codice per le applicazioni Web basate su .NET come definito da OWASP . Dopo aver eseguito alcune ricerche su .NET e code injection c'è qualcosa chiamato injection del codice nel contesto di .NET (come questo ) ma sembra non correlato all'iniezione di codice contro le applicazioni web.

L'esempio predefinito per l'iniezione di codice (in accordo con la definizione OWASP) è contro le applicazioni PHP, dove il codice viene creato dinamicamente in modo tale che dipenda dall'input dell'utente e quindi eseguito attraverso eval() . C'è qualcosa di simile per .NET?

    
posta countermode 09.02.2017 - 13:04
fonte

2 risposte

2

Il modo più semplice in cui posso pensare di fare l'iniezione di codice nell'applicazione Web .Net è consentire il caricamento di file e consentire all'utente di caricare un file modello Razor (.cshtml o .vbhtml) e consentire all'utente di richiedere / eseguire esso.

Come menzionato nei commenti, System.Reflection è anche molto potente e potrebbe teoricamente essere usato per iniettare il codice.

    
risposta data 09.02.2017 - 15:25
fonte
-1

La risposta generale è sì, ci sono iniezioni di codice in .NET.

Ecco alcuni esempi:

  • Iniezioni SQL (se si utilizzano query ad-hoc basate sull'input dell'utente
  • Iniezioni XSS (sfruttando le vulnerabilità del tuo back-end per modificare il tuo codice front-end)
  • Accesso ai file non autorizzato (ad esempio attacco nullbyte o altri attacchi di caricamento file)

I passaggi di prevenzione spesso trascurati sono:

  • Vincola (convalida l'input)
  • Rifiuta (rifiuta gli input nocivi noti)
  • Sanitizza (fai attenzione agli input non sicuri come "";) - /)

Guida MSDN per Prevenzione delle iniezioni per .NET

    
risposta data 09.02.2017 - 15:36
fonte

Leggi altre domande sui tag