Sec24 – Command Execution

Av: Oscar Andersson, Sec24, 2013-05-24

OBS:  Följande guide är för utbildningssyfte enbart och får absolut inte användas för olagliga ändamål.

Syftet med en kommandoinjektions-attacker (Command Execution) är att injicera och exekvera kommandon som anges av angriparen i det sårbara programmet. I den här situationen är programmet som utför oönskade systemkommandon som ett pseudo-system shell, och angriparen kan använda den som en auktoriserad användare av systemet. Men kommandon exekveras med samma privilegier och i samma miljö som programmet körs i. Kommandoinjektion blir möjligt, i de flesta fall, på grund av bristen på korrekt validering av indata och därför kan denna data manipuleras av angriparen (formulär, cookies, HTTP headers etc).

Det finns en variant som kallas kodinjektion (Code Injection). Skillnaden med kodinjektion är att angriparen lägger till sin egen kod till den befintliga koden. På detta sätt sträcker sig angriparen utöver standardfunktionaliteten av programmet utan att nödvändigtvis utföra systemkommandon. Injicerad kod exekveras med samma privilegier och i samma miljö som programmet finns i.

En OS-kommandoinjektions attack (Operating System command injection) inträffar när en angripare försöker köra kommandon på systemnivå genom en sårbar applikation. Programmet anses sårbara för OS-kommandoinjektions attacker om de använder användarens input för systemnivå kommandon.