Cechą strony jest brak podejrzanych plików w plikach strony, a strona jest zasadniczo architekturą ASP+SQLSserver. Otwórz bazę danych w menedżerze enterprise i zobaczysz, że do skryptu bazy danych dodano trojan oraz znaki pola. Otwórz log strony i zobaczysz, że kod został dodany za pomocą SQL injection.
Nie ma mowy, najpierw usuń skrypt przez analizator zapytań, na szczęście haker zawiesza konia jest nadal dość regularny, możesz go wyczyścić naraz, napisać skrypt czyszczenia dla każdej tabeli w bazie danych w analizatorze zapytań i uruchomić go od razu, okej, otwórz stronę, świat jest czysty. Poniżej przedstawiono skrypt clearingu:
AKTUALIZACJA nazwy tabeli zestaw pole = REPLACE(field name, hacker url ,)
Jeśli zainfekowane pole to tekst, jest to bardziej problematyczne, a podczas procesu konwersji w celu konwersji typu tekstu na varchar(8000) za pomocą funkcji konwersji mogą zostać utracone niektóre dane
Po wylaniu skrypt SQL zostanie zapisany, czy wszystko w porządku, po dwóch godzinach strona znowu się zawiesza!
Musiałem ponownie uruchomić analizator zapytań, uruchomić skrypt i go wyczyścić. Jest bardzo jasne, ale ludzie zawsze muszą spać, więc nie da się tam złapać tajemnic z hakerami.
Nagle myśląc, że to biblioteka sqlserver, Microsoft musi mieć rozwiązanie, nie możemy powstrzymać go przed patrzeniem na bazę danych, by zawiesić konia trojańskiego, ale możemy sprawić, że to się nie uda. To tylko z wyzwalaczami!
Każdy, kto zna się na wyzwalaczach, wie, że sql2000 najpierw wstawia i modyfikuje dane w wstawionej tabeli tymczasowej, a następnie faktycznie umieszcza je w odpowiedniej tabeli. Blokowanie kroków hakerów znajduje się w tej tymczasowej tabeli!
Kod hakerskiego konia wisącego zawiera to słowo, ponieważ tylko w ten sposób klient może jednocześnie otworzyć stronę internetową, by uderzyć w stronę wielkiego hakera, więc zacznijmy od tego.
Kod wyzwalacza jest przedstawiony poniżej:
CREATE nazwę wyzwalacza
na nazwie stołu dla aktualizacji, wstaw jako Deklaruj @a varchar(100) - Pole Zapisz 1
Deklaruj @b varchar(100) - Pole zapisz 2
Deklaruj @c varchar(100) -- Zapisz pole 3
wybierz @a=Pole 1, @b=Pole 2, @c=Pole3 z wstawienia jeśli (@a %script% lub @b %script% albo @c %script%) zaczynaj Transakcja ROLLBACK koniec
Znaczenie tego wyzwalacza polega najpierw na zdefiniowaniu trzech zmiennych i przechowywaniu trzech, które łatwo można przechowywać w wstawionej tabeli
Pole typu string, które haker zaczął, a następnie używa like, by niejasno ocenić, czy wartość zawiera słowo script, a jeśli tak, cofnąć transakcję bez zgłaszania błędu, by sparaliżować hakera i sprawić, że błędnie pomyśli, że zawiesił konia.
Znajomi, którzy się zawieszili, mogą wziąć ten skrypt i odpowiednio go zmodyfikować, co powinno zapewnić, że strona nie zostanie zablokowana. Ponadto istnieje także typ tekstowy dla pól, które łatwo zawiesić, ale ten typ jest trudniejszy w obsłudze, a zaobserwowano, że hakerzy często wieszają kilka pól jednocześnie, aby zawiesić tabelę, więc dopóki jedno pole nie uda się, cała tabela jest nieudana |