Zabezpečení a „PHP injection“

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Milan Obrtlík
Člen | 50
+
-1
-

V dobách dávných a temných, kdy jsem psal „webové aplikace“ ve stylu:

<?php if($_GET["page"] != 'user_page'): ?>
	<div class="panel">
		<?php echo $data["left_slot"]; ?>
	</div>
<?php endif; ?>

mi napadli web hackeři a napíchali mi do hostingu své jedovaté php soubory.

Dodnes netuším co to bylo za útok, všude se mluví jen o SQL injection apod. Má někdo z vás tušení, co to to bylo?

A je možné takový útok provést na Nette?

Šaman
Člen | 2665
+
0
-
  1. RTFG https://cs.wikipedia.org/…QL_injection
  2. Samozřejmě že je, ale Nette ti ulehčí to zabezpečit. A pokud budeš dodržovat best practise, tak by takové základní utoky vůbec být možné neměly. Ale když prostě naprogramuješ díru, tak budeš mít díru, s tím framework nic neudělá.

P.S. Tvoje ukázka s SQL injection vůbec nesouvisí, ale chápu co tím chceš říct. Naprosté ignorování bezpečnosti vstupů. Asi jako kdyby v obchodě někdo „platil“ pokladní pytlíkem od bonbónů a prohlásil „to je tisícovka“. A ona mu vrátila na tisícovku :)

Editoval Šaman (23. 9. 2015 18:21)

Milan Obrtlík
Člen | 50
+
0
-

@Šaman, já také nemluvil v žádném případě o SLQ injection (dokonce jsem ho vyloučil pomocí „nevím co to je za útok, všude je popsané jenom SQL injection“). Mluvil jsem o injekci do PHP, u nás na toto téma Google mlčí.

Googlil jsem v zahraničí a našel jsem toto a toto v tom druhém se zmiňují o RFI. To bude asi to, čím jsem byl tehdy napadený. Co bych musel udělat, abych si naprogramoval takovou díru?

xrep
Člen | 51
+
0
-

PHP Injection sa da zaradiť do kategorie RFI, a musel by si imho napisat niečo v štyle

<?php
if($_GET["page"] != '' )
	require( $_GET["page"] );
?>

a povoliť to → http://stackoverflow.com/…ver-with-php

Editoval xrep (24. 9. 2015 12:34)

Zax
Člen | 370
+
+1
-

Možností je cca miliarda. V dobách čistého PHP jsem si taky užil různé útoky a člověk kolikrát fakt netuší, odkud to směřuje, protože je to všechno „propojený“. I taková obyčejná SQL injekce může v některých případech klidně vést i ke spuštění PHPka (SELECT "<?php maliciouscode(); ?>" INTO OUTFILE "../../var/www/exploit.php").

Editoval Zax (24. 9. 2015 16:09)

Michal Hlávka
Člen | 190
+
+1
-

Dle tvého kodu co si tu dal, nejde rozpoznat, co to mohl být za útok.

Milan Obrtlík
Člen | 50
+
0
-

@emptywall, ano, omlouvám se, že jsem sem nedal přesný příklad napadnutého kódu. Dávno jsem ho vyhodil. Z dané ukázky lze ale vyčíst styl psaní kódu – naprostá ignorace vstupu a předpokládání, že vstup je vždy platný.

@xrep, o ikludování souboru ze vstupu jsem se dozvěděl až teď, to jsem tam určitě nedělal. Co jsem tam ale dělal, tak je docela hezky ukázané v tomto videu a považoval bych to také za injekci jedovatého kódu.

@Zax, vzpomínám si, že se mi v databázi objevovaly záznamy jako ../../../../../. Netušil jsem, že je tolik možností jak narvat cizí jedovaté soubory do www složky na hostingu. To přece není možné, ne? Jaktože to neřeší PHP? To je přece úkon, který pak musí řešit programátoři neustále dokola.

Tomáš Jablonický
Člen | 115
+
0
-

xrep napsal(a):

PHP Injection sa da zaradiť do kategorie RFI, a musel by si imho napisat niečo v štyle

<?php
if($_GET["page"] != '' )
	require( $_GET["page"] );
?>

a povoliť to → http://stackoverflow.com/…ver-with-php

Řekl bych, že to byl podobný útok, případně jsi neměl ani ošetřené $_FILES a ukládal jsi soubory do veřejně přístupné složky. To si tam pak může útočník nahrát a spustit cokoliv a celou aplikaci ti jednoduše rozbourat.

Milan Obrtlík
Člen | 50
+
0
-

Tomáš Jablonický napsal(a):

Řekl bych, že to byl podobný útok, případně jsi neměl ani ošetřené $_FILES a ukládal jsi soubory do veřejně přístupné složky. To si tam pak může útočník nahrát a spustit cokoliv a celou aplikaci ti jednoduše rozbourat.

Neměl jsem tam funci pro nahrávání souborů.

Jake898
Člen | 5
+
0
-

No, a nešlo spíš o nějakou díru v tvém FTP klientu? Je to pár let, co měl třeba Total Commander problém s úniky uložených hesel k FTP. U FileZilly se něco takového objevilo snad před rokem.