Autor Zpráva
stepanka
Profil *
Ahoj,

zkoušeli jste někdy někdo vytvořit SQL dotaz přes JS nebo AJAX? Přes Javascript je to asi nemožné, ale v kombinaci s PHP by to možná jít mohlo.. Přemýšlím, jestli by se to pak dalo využít k potenciálnímu útoku. Něco jako SQL injection přes XSS.. Co myslíte, mohlo by to fungovat?

Děkuju.
Chamurappi
Profil
Reaguji na stepanku:
Co myslíte, mohlo by to fungovat?
Myslím si, že nevím, na co se vlastně ptáš. Sestavit SQL dotaz (jako řetězec) jde v jakémkoliv jazyce, přesvědčit databázi, aby ho zpracovala, dokáže jen oprávněný skript (přes všelijaké oprávněné prostředníky). A tento oprávněný skript by pochopitelně neměl nikdy běžet na straně (neznámého) návštěvníka.

Něco jako SQL injection přes XSS.
Není třeba XSS. To, o čem píšeš, je čistokrevný SQL injection.
stepanka
Profil *
Chamurappi

Děkuji za reakci.

Pokusím se situaci více přiblížit.. Chci zjistit, jestli je možné nabourat jeden e-shop přes SQL injection. Všechny vstupy do databáze jsou ošetřené, aby uživatel nemohl vložit například typický řetězec ' OR 1=1. Našla jsem ale zranitelnost na XSS. A to jak v URL, tak ve formulářovém poli. Můžu si takhle ukrást SESSION ID, nebo nechat vyskakovat hlášky, ale nepodařilo se mi tímto způsobem zaútočit na databázi. A zajímalo by mě, jestli to jde..

Zkouším tedy místo (například):

<script>alert('baf!');</script>


Vložit něco na tento způsob:

<script><?php mysql_query="select * from tabulka"; ?></script>


Pokud by se teoreticky tento kód do stránky umístil, bylo by připojení k databázi aktivní, takže znát přístupy do databáze by nutné nebylo.

Vím, že tento konkrétní příklad je asi nesmysl, ale nemohlo by něco podobného fungovat?

Děkuju moc.
Enyeus
Profil
Moderátor Chamurappi: Varování: Tento příspěvek je příliš geniální.

Skus AJAX
Kajman_
Profil *
Přes xss dostane kód do konečné stránky, ne do zdrojáků, kde je možné pouštět např. php příkazy.
Chamurappi
Profil
Reaguji na stepanku:
A zajímalo by mě, jestli to jde.
Ne. XSS je díra, která ti umožňuje dělat na cizí doméně věci jménem nějakého jiného uživatele. Pokud je v e-shopu přihlášený a navštíví tvoji útočnou stránku, můžeš přes něj objednávat zboží, můžeš mu čmajznout nějaká osobní data, ale to je asi tak všechno.
Joker
Profil
stepanka:
Takhle přímo to nejde. Šlo by to v případě, že by se na serveru nějaký vstup od klienta spouštěl jako PHP... a pak by tím vstupem prošly i nebezpečné příkazy... ovšem tohle by byla bezpečnostní díra jako vrata.
stepanka
Profil *
Kajman_, Chamurappi, Joker

Děkuju všem za reakce. Někde na webu o AJAXu jsem předtím našla:

"AJAX je k tomu, abyste mohli pomocí JavaScriptu načíst třeba stránku PHP (v pozadí stránky, na které se nacházíte) a poslat jí nějaká data. Jiná data od ní můžete i přijmout a hned je použít."

Tak proto jsem se ptala na tuto možnost. Protože chci pomocí Javascriptu načíst pár řádků PHP skriptu a ty data poslat, čili uložit do databáze (smazat tabulku, vyprázdnit databázi, zastřelit administrátora, ...).

Říkáte tedy, že ani přes AJAX by toto nešlo? Nikdy jsem v něm nic nepsala, vidím ho víceméně poprvé..
Joker
Profil
stepanka:
AJAX jde vždycky přes skript na serveru.
Tzn. muselo by to fungovat takhle:
1. Na serveru je skript, který na základě požadavků z klienta provádí databázové operace. Útočník z klienta pošle požadavek na nebezpečnou operaci a skript na serveru ji provede.
2. Na serveru je skript, který od klienta převezme PHP kód a vykoná ho. Klient pošle nebezpečný kód a skript ho vykoná.

Dát si na server tu jedničku je hrubý hazard (= skript který nad databází provede cokoliv si klient řekne), dvojku (= skript, který provede PHP získané z klienta) šílenství.
stepanka
Profil *
Joker
Jasně no.. Už tomu rozumím.. Ona je to vlastně i blbost - kdyby tohle mohlo fungovat, byly by všechny aplikace strašně lehce zneužitelné. Tak děkuju.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: