Web5: Wstrzykiwanie SQL - niektóre techniki omijania mechanizmów filtrujących

1. Obetnij treść zapytania

Jeśli chcesz zignorować skrypty w zapytaniu. Na przykład dla poniższego przetwarzania zapytanie wymaga warunku active=1, ale możemy skomentować (--, -- -, -+, #, /*, /**/, // , ;%00…) i zignoruj ​​to. Podczas eksploracji często nie wiemy, co robi pozostała treść zapytania, dlatego użycie komentarzy w tym przypadku jest bardzo skuteczne.

Web5: Wstrzykiwanie SQL - niektóre techniki omijania mechanizmów filtrujących

Po skomentowaniu nasze zapytanie brzmi:

Web5: Wstrzykiwanie SQL - niektóre techniki omijania mechanizmów filtrujących

2. Pomiń filtrowanie słów kluczowych

A. Komentarze wbudowane

Komentarze wbudowane są bardzo skutecznie wykorzystywane do ominięcia filtrowania białych znaków. Aby ominąć filtrowanie białych znaków, można użyć następujących znaków: /**/, %20, %09, %0a, %0b, %0c, %0d, %a0). Na przykład:

Web5: Wstrzykiwanie SQL - niektóre techniki omijania mechanizmów filtrujących

Lub pomiń filtrowanie słów kluczowych (dostępne w MySql). W poniższym przykładzie słowa kluczowe union i hasło znajdują się na czarnej liście, więc zostały zablokowane.Możemy to ominąć w następujący sposób:

Web5: Wstrzykiwanie SQL - niektóre techniki omijania mechanizmów filtrujących

B. Zamień słowa kluczowe

Wykorzystując wstrzykiwanie SQL, często używamy słów kluczowych, takich jak: union,select,information_schema... W wielu przypadkach programiści po prostu zastępują te słowa kluczowe:

Web5: Wstrzykiwanie SQL - niektóre techniki omijania mechanizmów filtrujących

Łatwo możemy zauważyć, że brakuje powyższego kodu przetwarzającego. Jeśli jest to po prostu dopasowanie wzorca, obejście jest niezwykle proste. Zastosujmy zasadę rozróżniania wielkości liter, gdzie wielkie i małe litery są interpretowane inaczej.

Teraz zamiast używać słowa kluczowego:

select, union…

Użyjemy:

SeLEcT, UniOn…

Podstawą tego obejścia jest to, że systemy zarządzania bazami danych nie rozróżniają słów kluczowych case i case.

W niektórych przypadkach aplikacja internetowa odfiltruje całość lub część określonych słów kluczowych (unia, wybierz...). Ominiemy w następujący sposób:

id=1+uniunionon+SeLselectecT+1,2,3-- -

Po odfiltrowaniu unii i selekcji przez aplikację internetową, pozostanie nam prawidłowe zapytanie w następujący sposób:

id=1+union+SeLecT+1,2,3-- -

C. Kodowanie znaków

Możemy ominąć, gdy WAF (Web Application Firewall) blokuje słowa kluczowe, kodując je. Wiele aplikacji WAF dekoduje zapytanie tylko raz i odfiltrowuje słowa kluczowe z czarnej listy. Następnie zakodujmy żądanie dwukrotnie, aby w tym przypadku można było je ominąć.

Web5: Wstrzykiwanie SQL - niektóre techniki omijania mechanizmów filtrujących

3. Pomiń bloki pojedynczych i podwójnych cudzysłowów

- Spójrzmy na przykład, zanim poznamy konkretnie tę obwodnicę.

Web5: Wstrzykiwanie SQL - niektóre techniki omijania mechanizmów filtrujących

W tym scenariuszu mamy w bazie danych tabelę o nazwie users. Następnym zadaniem jest poznanie nazwy kolumny w tabeli, aby uzyskać o niej informacje. Podobnie jak w powyższym zapytaniu, używamy warunku: nazwa_tabeli='użytkownicy'. Ale jeśli zarówno pojedyncze cudzysłowy ('), jak i podwójne cudzysłowy (") są blokowane przez WAF, nie możemy już używać „użytkowników” ani „użytkowników”. Jak więc rozwiązać ten problem? Wbudowany system baz danych udostępnia nam funkcję, która bardzo dobrze rozwiązuje ten problem, czyli funkcję CHAR( ) (dla Oracle jest to CHR()).Przykładowo w powyższym zapytaniu ominiemy to poprzez:

Web5: Wstrzykiwanie SQL - niektóre techniki omijania mechanizmów filtrującychWeb5: Wstrzykiwanie SQL - niektóre techniki omijania mechanizmów filtrujących

Programiści PHP są bardzo zaznajomieni z funkcją addlashes(). Funkcja addlashes() powoduje dodanie przed znakami specjalnymi, takimi jak pojedynczy cudzysłów ('), podwójny cudzysłów ("), ukośnik odwrotny (\), znak NUL (bajt zerowy) „\”, aby pomóc systemowi zarządzania bazą danych. Czy istnieje nie ma trudności i zamieszania przy obsłudze ciągów zawierających te znaki?Tak więc, gdy chcemy wstrzyknąć do zapytania zgodnie ze skryptem: nazwa='jakaśNazwa' lub '1'='1'-- Wyniki nie są już takie, jakich oczekiwaliśmy.

Istnieje jednak technika ominięcia funkcji addlashes() w celu wstrzyknięcia znaków pojedynczego cudzysłowu ('). Technika ta jest powszechnie znana od dłuższego czasu, a jej wdrożenie jest dość trudne, ponieważ jest powiązane ze stylem kodowania strony internetowej.

4. Pomiń błąd „nielegalne połączenie zestawień dla operacji UNION”

W niektórych systemach zarządzania (powszechnie spotykanych w MySql), gdy bazy danych i tabele są ustawione na sortowanie, przy użyciu słowa kluczowego UNION zostanie zgłoszony błąd „nielegalne połączenie sortowania dla operacji UNION”. Ustawienie sortowania może wynikać z zamierzenia projektanta bazy danych lub z domyślnego ustawienia MySql. W przypadku stosowania unii musimy zadbać o to, aby warunek wyboru wartości w każdym polu miał zdefiniowany odpowiedni typ kodu. Moim zdaniem ten błąd jest dość powszechny, szczególnie w przypadku CMS-ów z uruchomionym Apache MySql. Więcej informacji można znaleźć na stronie: http://bugs.mysql.com/bug.php?id=57926.
W takim przypadku możemy skorzystać ze sposobów konwersji na odpowiedni typ kodowania.

Na przykład w następującym przypadku:

Web5: Wstrzykiwanie SQL - niektóre techniki omijania mechanizmów filtrujących

W powyższym zapytaniu, jeśli kolumna 1 ma sortowanie ustawione na przykład na Unicode-UTF8 lub _latin1, wówczas to, co zostanie wybrane z kolumny 2, będzie musiało zostać przekonwertowane na odpowiedni kod. Możemy wymusić styl w następujący sposób:

Web5: Wstrzykiwanie SQL - niektóre techniki omijania mechanizmów filtrujących

Widzimy wadę tej metody obejścia: musimy wiedzieć, że zestawiony kod to _latin1. Moim zdaniem lepszym sposobem na ominięcie tego jest użycie funkcji kodowania i dekodowania hex i unhex.

Web5: Wstrzykiwanie SQL - niektóre techniki omijania mechanizmów filtrujących

Istnieje wiele innych funkcji, których można użyć zamiast hex i unhex.

Zostaw komentarz

Jak usunąć informację o żądaniu praw autorskich w prawym rogu ekranu w systemie Windows 10

Jak usunąć informację o żądaniu praw autorskich w prawym rogu ekranu w systemie Windows 10

Czy widzisz powiadomienie o aktywacji systemu Windows 10 w prawym rogu ekranu? W tym artykule dowiesz się, jak usunąć powiadomienie o żądaniu dotyczącym praw autorskich w systemie Windows 10.

Instrukcje od AZ dotyczące instalacji systemu Windows 10 w wersji 14393.222

Instrukcje od AZ dotyczące instalacji systemu Windows 10 w wersji 14393.222

Niedawno firma Microsoft wydała najnowszą aktualizację zbiorczą dla użytkowników komputerów PC z systemem Windows 10 o nazwie Build 14393.222. Ta aktualizacja wydana dla systemu Windows 10 naprawia głównie błędy na podstawie opinii użytkowników i poprawia wydajność systemu operacyjnego.

Chroń swoją sieć komputerową za pomocą hosta Bastion w zaledwie 3 krokach

Chroń swoją sieć komputerową za pomocą hosta Bastion w zaledwie 3 krokach

Czy masz komputery w sieci lokalnej, które wymagają dostępu zewnętrznego? Dobrym rozwiązaniem może być użycie hosta bastionowego jako strażnika sieci.

3 sposoby na szybkie wyczyszczenie wszystkich dzienników zdarzeń w systemie Windows 10

3 sposoby na szybkie wyczyszczenie wszystkich dzienników zdarzeń w systemie Windows 10

Czasami może być konieczne jednoczesne usunięcie wszystkich starych dzienników zdarzeń. W tym przewodniku Quantrimang.com pokaże Ci 3 sposoby szybkiego usunięcia wszystkich dzienników zdarzeń w Podglądzie zdarzeń systemu Windows 10.

Jak utworzyć klucz Windows, jeśli klawiatura nie jest dostępna

Jak utworzyć klucz Windows, jeśli klawiatura nie jest dostępna

Jeśli wolisz używać starej, klasycznej klawiatury, takiej jak IBM Model M, która nie zawiera fizycznego klawisza Windows, istnieje prosty sposób, aby dodać więcej, pożyczając klawisz, którego nie używasz często.

Jak utworzyć tryb przezroczystego tła w systemie Windows 10

Jak utworzyć tryb przezroczystego tła w systemie Windows 10

WindowTop to narzędzie, które ma możliwość przyciemnienia wszystkich okien aplikacji i programów działających na komputerach z systemem Windows 10. Możesz także użyć interfejsu z ciemnym tłem w systemie Windows.

Metody fałszywego adresu IP umożliwiają anonimowy dostęp

Metody fałszywego adresu IP umożliwiają anonimowy dostęp

W wielu poprzednich artykułach wspominaliśmy, że zachowanie anonimowości w Internecie jest niezwykle ważne. Co roku dochodzi do wycieku prywatnych informacji, co sprawia, że ​​bezpieczeństwo w Internecie staje się coraz bardziej konieczne. Z tego też powodu powinniśmy używać wirtualnych adresów IP. Poniżej dowiemy się o metodach tworzenia fałszywych adresów IP!

Jak wyłączyć pasek języka na pasku zadań systemu Windows 8

Jak wyłączyć pasek języka na pasku zadań systemu Windows 8

Pasek języka w systemie Windows 8 to miniaturowy pasek narzędzi języka, zaprojektowany tak, aby automatycznie wyświetlał się na ekranie komputera stacjonarnego. Jednak wiele osób chce ukryć ten pasek języka na pasku zadań.

Wskazówki dotyczące optymalizacji szybkości połączenia internetowego od Linksys

Wskazówki dotyczące optymalizacji szybkości połączenia internetowego od Linksys

Maksymalizacja szybkości Internetu jest niezbędna do optymalizacji połączenia sieciowego. Możesz cieszyć się optymalną rozrywką i pracą, korzystając z komputerów, telewizorów z dostępem do Internetu, konsol do gier itp.

Jak skonfigurować WEP, WPA, WPA2 dla routera Linksys

Jak skonfigurować WEP, WPA, WPA2 dla routera Linksys

Łączność bezprzewodowa jest dziś koniecznością i dlatego bezpieczeństwo sieci bezprzewodowej jest niezbędne do zapewnienia bezpieczeństwa w sieci wewnętrznej.