mi az OS parancs injekció?
az operációs rendszer parancsinjekciója egy webes biztonsági rés, amely lehetővé teszi az operációs rendszer jogosulatlan parancsainak végrehajtását. Az operációs rendszer parancs-befecskendezési sebezhetősége akkor merül fel, amikor egy webalkalmazás nem szűrt, szűretlen rendszerparancsokat küld végrehajtásra. Az elégtelen bemeneti érvényesítés miatt a támadó saját parancsokat injektálhat a shell szintjén. A támadó az operációs rendszer parancsait a felhasználó által megadott adatok, például sütik, űrlapok vagy HTTP fejlécek segítségével vezeti be.
ez egy veszélyes biztonsági rés, mivel a támadó által szállított OS parancsokat általában a sebezhető alkalmazás jogosultságaival hajtják végre. Ezért a támadó teljes irányítást szerezhet az system operációs rendszer felett, veszélyeztetve az alkalmazást és az összes adatot.
ellentétben a kódinjekciós sérülékenységekkel, amelyek akkor állnak fenn, amikor a támadó végrehajtható bemenetet küldhet be egy programba, és ráveszi a szoftvert a bemenet futtatására. A parancsinjekciós sebezhetőség kihasználja a nem védett rendszer gyengeségeit, amely lehetővé teszi tetszőleges parancsok végrehajtását kód befecskendezése nélkül. Mindkét sérülékenység a megfelelő bemeneti/kimeneti adatok érvényesítésének hiányából ered.
hasznos parancsok
az alábbiakban néhány hasznos parancs található, amelyek további információkat nyújthatnak a megtámadott operációs rendszerről
a parancs célja |
Linux |
Windows |
az aktuális felhasználó neve |
whoami |
whoami |
operációs rendszer |
uname-a |
ver |
hálózati konfiguráció |
ifconfig |
ipconfig / all |
Hálózati kapcsolatok |
netstat-an |
netstat-an |
futó folyamatok |
ps-ef |
feladatlista |
az OS parancsok befecskendezésének módjai
annak érdekében, hogy tesztelje az alkalmazást egy parancsinjekciós sebezhetőség szempontjából, próbáljon meg olyan metakaraktereket használni, amelyek lehetővé teszik a parancsok összekapcsolását. Ha képes futtatni a saját parancsát, akkor a webes alkalmazás sebezhető. A következő parancselválasztók mind Windows, mind Unix alapú rendszereken működnek:
- &
- &&
- |
- ||
más parancs befecskendezési hasznos terhelések közé tartozik a ping parancs, amely alatt késleltetést vált ki, lehetővé téve annak megerősítését, hogy a parancsot az alkalmazás válaszához szükséges idő alapján hajtották végre. Az alábbi parancs 10 másodpercet vesz igénybe a válasz visszaadásához.
& ping-c 10 127.0.0.1 &
a támadók az nslookup parancs használatával is megerősíthetik az operációs rendszer parancs biztonsági rését az általuk ellenőrzött tartományra. Ha a look up történik tudják, hogy a parancs injekció sikeres volt.
különféle egyéb parancsok az alkalmazás teszteléséhez :
a php-v a webalkalmazások szerverén futó PHP verziót ad.
&&cat/etc / passwddisplays minden felhasználó a backend Linux Server
/etc / shadowdisplays minden kivonatolt jelszavak, de csak akkor, ha fut a root jogosultságokkal.
hogyan lehet megakadályozni az OS parancsinjekciós támadásokat
- Defense 1.Lehetőség: kerülje az OS parancsok közvetlen hívását-kerülje az OS parancsok közvetlen hívását. A beépített könyvtári funkciók nagyon jó alternatíva az operációs rendszer parancsaihoz.
- 2.védelmi lehetőség: az egyes operációs rendszerekre jellemző OS parancsokhoz hozzáadott menekülési értékek – például a PHP-ben található exampleescapeshellcmd ().
- 3. védelmi lehetőség: paraméterezés Input Validation – Ifuser-provided-rel együtt nem kerülhető elparameterizationandinput validationshould be use.