konto usunięte

Temat: SQL Injection a przejęcie kontroli nad serwerem Linux

Witam.

Mam taką sprawę :)

Stoi sobie serwerek na którym jest jeden z popularnych portali CMS . Po dokonaniu ataku sql injection przejąłem nad nim kontrole ( dodałem się do tabeli authors ) .

Pytanie : Czy istnieje możliwośc przejęcia kontroli nad całym serwerem poprzez wykonanie w/w ataku na baze danych ?
Michał Ławicki

Michał Ławicki dostawca zadowolenia

Temat: SQL Injection a przejęcie kontroli nad serwerem Linux

Nie. SQL Injection polega na modyfikacji oryginalnego zapytania wskutek nieodpowiedniej filtracji danych wejściowych. Umożliwia on "tylko" modyfikację danych znajdujących się w bazie.
Grzegorz O.

Grzegorz O. Właściciel MAK-IT

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ą.

PozdrawiamGrzegorz Oleksy edytował(a) ten post dnia 24.07.07 o godzinie 22:45

konto usunięte

Temat: SQL Injection a przejęcie kontroli nad serwerem Linux

Na nieszczęście sql injection można rozpatrywać w wielu płaszczyznach. W tej podstawowej jaka poruszyl Michał tj. modyfikacja zapytań i przez to np. dostęp do danych, ale patrząc na to troszkę z innej perspektywy istnieje wiele mechanizmów jak chociażby "INTO OUTFILE" na samej bazie, gdzie wykorzystując sql injection jesteśmy w stanie operować już na plikach systemu. W połączeniu z "dopowiednią" konfiguracją serwera ( niech będzie dla przykłądu archaiczy .rhosts ) jestesmy w stanie uzyskać więcej niz modyfikacje zapytania. Poruszając natomiast kwestie "dodania się do autorów" poprzez sql injection, zależnie od aplikacji oczywiście, może istniec możliwość wgrywania własnych np. skórek z rozszerzeniem .php, co daje możliwości dalszej penetracji systemu, ale już z poziomu lokalnego.
Dominik Siedlak

Dominik Siedlak IT Consultant &
Architect / systems
administrator

Temat: SQL Injection a przejęcie kontroli nad serwerem Linux

Marcin S.:
Witam.

Mam taką sprawę :)

Stoi sobie serwerek na którym jest jeden z popularnych portali CMS . Po dokonaniu ataku sql injection przejąłem nad nim kontrole ( dodałem się do tabeli authors ) .

Pytanie : Czy istnieje możliwośc przejęcia kontroli nad całym serwerem poprzez wykonanie w/w ataku na baze danych ?

Wszystko zależy od tego, jakie uprawnienia daje Ci aplikacja, która działa w połączeniu z tą bazą danych - w przypadku, gdy uprawnienie "super-hiper-admina" daje możliwość np. wykonywania poleceń systemowych, można już bardzo dużo. Chodzi o to, że:
- w przypadku CMS plik konfiguracji (ten, który leży najczęściej w katalogu głównym apikacji) zawiera hasło i login do bazy (o zgrozo, użytkownikiem jest często root!)
- w wielu przypadkach to hasło będzie też hasłem roota...

Wszystko zależy od Twojej wyobraźni o odrobinki sprytu, a można b.dużo zdziałać.

konto usunięte

Temat: SQL Injection a przejęcie kontroli nad serwerem Linux

Aplikacją działającą na serwerze www ( apache 1.3 , php4 i mysql 4.0.21 - OS Debian) jest w moim wypadku PHP Nuke 7.0 ( dziurawy jak cholera ) . Dodałem się do grupy autorów w bazie danych ( przez co zyskałem uprawnienia administratorskie do całego portalu ). Nie chodzi mi o to żeby coś zniszczyć / usunąć ( nie bawie się w jakieś tam hakerstwo czy inne rzeczy ) a moje konto istnieje w systemie od prawie miesiąca czasu i nikt tego nie wykrył :) Jak znam życie to administrator zalogował się na roota , wszedł do bazy danych , zrobił create database nuke; i zainstalował portal :) Ale do czego zmierzam - chodzi mi o to , żeby pokazać "jedynemu , słusznemu i wszechwiedzącemu" kierownictwu że któregoś dnia przyjdzie ktoś , kto się wepnie w sieć ,wejdzie na portal , zrobi to co ja , i wywali wszystko w cholere ( 4 lata pracy na marne ) :) Stąd moje pytanie na forum :-)

Pozdrawiam i dzięki za odpowiedzi
Jakub L.

Jakub L. Programista

Temat: SQL Injection a przejęcie kontroli nad serwerem Linux

Dobrymi chęciami piekło jest wybrukowane.
Moja rada - olej to.
Jeżeli twoja praca zależy od tego, zrób backup, a potem olej to.
Od dbania o bezpieczeństwo tej aplikacji jest jej autor/administrator, a nie osoba postronna.
Inaczej w przypadku katastrofy zostaniesz oskarżony o to, że to właśnie ty spowodowałeś tę katastrofę, i na nic zdadzą się tłumaczenia, że luka istniała od dawna - strzela się do posłańca.Jakub L. edytował(a) ten post dnia 27.07.07 o godzinie 16:31

konto usunięte

Temat: SQL Injection a przejęcie kontroli nad serwerem Linux

Na szczęście moja praca od tego nie jest zależna.... aczkolwiek mam za zadanie zaprojektować portal service desku .. i nie mam co liczyć na własny serwer / subdomene / vhosta ani nic. Mam portal wkomponować w obecny istniejący jako moduł do Nuka. Stąd moje pytanie na forum :-)

Następna dyskusja:

SQL Injection -> Materiały C#




Wyślij zaproszenie do