Fórum Ubuntu CZ/SK

Ubuntu pro osobní počítače => Software => Příkazový řádek a programování pro GNU/Linux => Téma založeno: Firzen 22 Září 2011, 16:29:13

Název: Bash - spuštění kódu v parametru [vyřešeno]
Přispěvatel: Firzen 22 Září 2011, 16:29:13
Ahoj všichni,

potřeboval bych nějak ošetřit možnost zneužití vlastností bashe. Jde mi o to, že když použiju například:
Kód: [Vybrat]
cp soubor1 soubor2Tak to funguje, ale problém nastává v případě souboru se jménem například:
Kód: [Vybrat]
muhehe;rm -fr /usr/binSamozřejmě řešení je v:
Kód: [Vybrat]
cp "soubor1" "soubor2"Jenže potom by útočník mohl použít:
Kód: [Vybrat]
muhehe;$(rm -fr /usr/bin)A to už vyřešit nedovedu.

Jak by jste to řešili vy?
Název: Re: Bash - spuštění kódu v parametru
Přispěvatel: RRRadek Neužil 22 Září 2011, 17:07:10
Ale to by se útočník nejdříve musel dostat ke kompu nebo přes ssh ne?
Nebo ti jde o spouštěcí skripty SH který by si uživatel spustil dobrovolně sám?
Název: Re: Bash - spuštění kódu v parametru
Přispěvatel: Kedrigern 22 Září 2011, 17:39:11
Apostrofy se nikdy neinterpretují, co řešíš? Navíc co se týká bezpečnosti, tak to řeší práva. Útočník nemá práva na žádnou operaci, která je škodlivá. Pokud ano, tak si už udělal chybu.

Jinak se tím zabývá třeba kniha Libora Forsta (jednoduché příkazy).
Název: Re: Bash - spuštění kódu v parametru
Přispěvatel: pacholik 22 Září 2011, 18:56:22
Nevím jak by toho mohl využít útočník, ale ty můžeš použít jednoduché uvozovky nebo dvojité a vyeskejpovat dolar nebo žádné a vyeskejpovat skoro všechno. Jo a lomítko beztak v názvu bejt nemůže.
Kód: [Vybrat]
$ ls 'muhehe;$(rm -fr *)'
muhehe;$(rm -fr *)
$ ls "muhehe;\$(rm -fr *)"
muhehe;$(rm -fr *)
$ ls muhehe\;\$\(rm\ -fr\ \*\)
muhehe;$(rm -fr *)
Název: Re: Bash - spuštění kódu v parametru
Přispěvatel: Firzen 22 Září 2011, 22:09:42
Děkuju moc, ty jednoduché uvozovky mě vůbec nenapadly.

Apostrofy se nikdy neinterpretují, co řešíš? Navíc co se týká bezpečnosti, tak to řeší práva. Útočník nemá práva na žádnou operaci, která je škodlivá. Pokud ano, tak si už udělal chybu.
Ano udělal, bohužel je to nutné, když se to ode mě chce. Někde jsem četl, že největší prasárny dělají lidi, co něco programují za peníze. To proto, že musí pokračovat i tam, kde by se na to každý jiný dávno vykašlal a nebo by měl dostatek času na lepší řešení. Já ho bohužel nemám, takže ještě nějaký čas moje aplikace poběží pod rootem a bude načítat data. Takže je nutné bránit všechno zuby nehty. :-\
Název: Re: Bash - spuštění kódu v parametru
Přispěvatel: Kedrigern 22 Září 2011, 23:24:58
Nešlo by to třeba rozdělit na dva skripty? Jeden který načte pod rootem data a nejde v něm nic dělat (nebere parametry) a další, který si ty data přečte a zpracuje? Či tak něco?
Název: Re: Bash - spuštění kódu v parametru [vyřešeno]
Přispěvatel: ntz_reloaded 23 Září 2011, 12:26:20
oh god .. pokud jako root tolerujes (provedes) operaci s podobnym nazvem souboru tak hlasuju, aby ti byl rootovskej access odebran :P
Název: Re:Bash - spuštění kódu v parametru [vyřešeno]
Přispěvatel: Firzen 06 Října 2011, 00:13:02
oh god .. pokud jako root tolerujes (provedes) operaci s podobnym nazvem souboru tak hlasuju, aby ti byl rootovskej access odebran :P
Ona to je jen dočasná věc. Během pár týdnů to už bude běžet úplně jinak a bez roota. :)