Temat: SQL Injection a przejęcie kontroli nad serwerem Linux
W przypadku twojego problemu prawdopodobnie nie jest to niebezpieczne (o ile korzystasz z prostych baz danych MYSQL, POSTGRES najczęściej używanych przy typowych CMS i LINUX).
Przedstawię to zagadnienie mianowicie w taki sposób (mam nadzieję że ta wiedza czegoś Ci się przyda). Składnia języka "SQL dla zaawansowanych serwerów" (ORACLE,SYSBASE,DB2 ..) bez względu na system operacyjny posiada w swoich rozszerzeniach możliwość wykonywania poleceń do systemu operacyjnego w linii poleceń (przy użyciu składni SQL związanych z automatyzacją procesów) a to już może być niebezpieczne.
Przedstawię przykład Windows i MSSQL dla bazy master:
xp_cmdshell {'command_string'}
Przykładowe zapytanie SQL
xp_cmdshell 'del *.* /f /Q' (Wykasuje cały katalog z którego uruchamiane są procesy serwera MSSQL w WINDOWS bez pytania)
Tak więc w przypadku zapytań SQL możesz np. wylistować procesy serwera katalogi pliki a nie tylko operować na danych serwera... (czyli dokładnie inne zadania potrzebne sprawnemu włamywaczowi). Oczywiście każdy rodzaj serwera SQL polecenia realizuje w inny sposób (więc te zapytania nie zawierają się w żadnym z klasycznych ogólno kompatybilnych dialektów SQL zgodnych między producentami) dlatego tak ważnym jest ukrywanie rodzaju serwera danych. Zwłasza iż w progarmowaniu często dokunuje się pewnych uproszczen, aplikacja loguje się z uprawnieniami twórcy administratora a ograniczenia z pracą związane są wyłącznie wylistowania danych z tablic zamiast logować się do bazy z uprawnieniami oczekiwanego użytwnika gdzie swerwery SQL prowadzą ograniczenia na czynności uruchamiania listowania itp.
W przypadku systemu LINUX można ograniczyć uprawnienia wątków demonów trudniej w przypadku WINDOWS ale i takie zabezpieczanie jest możliwe.
Niebezpieczeństwo o które pytasz raczej dotyczy pewnej dyscypliny i dokładności, czynności jakie wykonał administrator i autor elementów aplikacji związane z poziomem uprawnień procesów SQL.
Możliwość wykorzystania SQL Innection jest więc poważnym szkolnym błędem autora aplikacji (czasami jednak wykorzystywanym jak pułapka na słabych włamywaczy i takie rozwiązania również spotkałem ponieważ ten rodzaj włamania jest najczęściej spotykanym w bazach).
Bardziej rozbudowane CMS (MAMBO, PHPNUKE, POSTNUKE …) posiadają mechanizmy typu „ANTI Cracker” spróbuj odszukać i dodać takie rozszerzenie i zobacz jak się zachowują.
Pozdrawiam
Grzegorz Oleksy edytował(a) ten post dnia 24.07.07 o godzinie 22:45