Post
#301
|
|
|
Grupa: Zarejestrowani Postów: 190 Pomógł: 0 Dołączył: 12.02.2004 Skąd: Poznań Ostrzeżenie: (0%)
|
Pytania o streszczenie wątku, posty z "genialnymi" skryptami nadającymi się tylko na przedszkole i inne tego typu, będą bez ostrzeżenia usuwane przez moderatorów.
To mówiłem ja, Jarząbek... znaczy nospor dnia 2007-12-10 ------------------------------------------------------------------------------- SQL Injection (zwane też "SQL Insertion") to (rzekomo) najprostszy sposób włamu na stronę. Spowodowany jest on niepełnym sformułowaniem zapytań do MySQL. Przykład. Dajemy na stronie możliwość edycji profilu. Zapytanie do SQL wygląda następująco:
Osoba włamująca się na stronę umieszcza całkiem prosty, odpowiedni ciąg znaków/poleceń w dowolnym polu edycji tego profilu, który wygląda np. tak (dla zmiany hasła użytkownika o dowolnie wybranym, przez atakującego numerze ID):
W taki oto prosty sposób, osoba atakująca zmieniła hasło użytkownikowi o ID=1 (zazwyczaj administrator). W podobny sposób można również wyciągnąć dowolne dane z tabeli SQL. W każdym razie. Poszperałem, pomyślałem i zebrałem wszystko do kupy. Zamieszczam to tutaj razem, oraz proszę o rozbudowanie tego topica, gdyż nie znalazłem na tym forum więcej informacji o "SQL Injection". Oto co możemy dokonać: 1. Możemy sformułować nasze zapytanie do SQL tak:
2. Przy wstawianiu numerów ID do zapytań należy stosować tzw. rzutowanie typów:
3. Przy wstawianiu tekstów, należy wyciąć niebezpieczne znaki przy pomocy funkcji:
Może nie ma tego dużo, ale jest to już jakaś podstawa do zabezpieczenia strony/skryptu przed prostym i niezwykle niebezpiecznym, SQL Injection. Proszę osoby obeznane w tym temacie, aby dopisały tu własne propozycje metod zabezpieczenia się przed tym atakiem. Ten post edytował Najki 14.02.2008, 10:04:12 |
|
|
|
Najki SQL Injection/Insertion 24.11.2004, 23:13:57
Soulast a ja się już nie co zagubiłem w tym wszystkim lecz... 24.05.2010, 23:52:25
Agape Powiedzcie mi, jak powinienem filtrować całą tabli... 22.06.2010, 09:42:42 
Agape Cytat(Agape @ 22.06.2010, 10:42:42 ) ... 22.06.2010, 13:12:02
erix O mamo, a przeczytałeś chociaż pierwszą stronę teg... 22.06.2010, 11:35:26
erix array_map 22.06.2010, 13:50:38
dsfds2432432dsf Zasada jest prosta - Don't trust user input
A... 6.07.2010, 21:38:07
Hoku tak się zastanawiam czy przepuszczenie przez preg_... 6.07.2010, 22:58:52 
bełdzio Cytat(Hoku @ 6.07.2010, 23:58:52 ) ta... 6.07.2010, 23:21:26
Crozin A po co Ci to wyrażenie? 6.07.2010, 23:15:15
Hoku Wyrażenie samo w sobie ma oczyszczać np. dodawaną ... 7.07.2010, 09:26:26
bełdzio wszystko zależy od tego, gdzie następnie wyświetla... 7.07.2010, 12:17:22
SHiP Ja wspomne, że mysql_real_escape_string oraz addsl... 7.07.2010, 13:20:48 
Spawnm Cytat(SHiP @ 7.07.2010, 14:20:48 ) Ja... 16.07.2010, 14:56:18
H4eX A co powiecie na takie zabezpieczenie przed SQL In... 16.07.2010, 14:20:56
Spawnm A co jak ja cię poproszę/zlecę napisanie mi bloga ... 16.07.2010, 14:23:44
pyro Poza tym to zabezpieczenie totalnie nic nie daje, ... 16.07.2010, 14:25:54
H4eX Czy oprócz kodowania szesnastkowego, da się jeszcz... 16.07.2010, 14:34:33
erix Weźcie mi wyjaśnijcie jedno - jest już kilka skute... 16.07.2010, 18:35:31
Spawnm Erix - bo w sieci na stronach o sql injection zami... 16.07.2010, 18:39:20
SHiP @Spawnm: musiałbym to iconv przetestować ale moim ... 16.07.2010, 22:29:04 
pyro Cytat(SHiP @ 16.07.2010, 23:29:04 ) W... 16.07.2010, 22:48:54 
H4eX Cytat(SHiP @ 16.07.2010, 23:29:04 ) W... 17.07.2010, 13:29:19
erix Huh, z tego co pamiętam, to dało się też niektóre ... 16.07.2010, 22:38:07
SHiP @pyro: ok trochę się zapędziłem. Sprawdziłem i w n... 16.07.2010, 23:11:18 
darko Cytat(SHiP @ 17.07.2010, 00:11:18 ) E... 17.07.2010, 13:48:00
SHiP [SQL] pobierz, plaintext SELECT char(80,72,80... 17.07.2010, 13:46:16
SHiP @darko: jaką masz wersję mysql? I czy masz w wybra... 17.07.2010, 13:50:17
darko 5.0.51a-24+lenny2+spu1 (Linux debian 2.6.30-bpo.1-... 17.07.2010, 13:51:37
SHiP Hmm no to dziwne. Wygląda na to, że starsza werjsa... 17.07.2010, 13:55:09
darko Wydzielcie ten nasz OT, jak możecie
/*!SELECT*... 17.07.2010, 14:06:47
set4812 Temat ma duzo strony czy ktoś mógłby wymienic wszy... 28.09.2010, 19:19:11
Noidea W sumie to faktycznie lekki śmietnik tu się zrobił... 29.09.2010, 11:38:25 
lukasamd Cytat(Noidea @ 29.09.2010, 12:38:25 )... 29.09.2010, 11:55:48
gargamel A co sądzicie o metodzie (na SELECT, UPDATE itp)
... 28.11.2010, 14:13:04
Mephistofeles Po co? Może wystąpić kolizja, choć to mało prawdop... 28.11.2010, 14:16:03
michal123 Czy zastosowanie wyrazen regularnych z funkcja pre... 4.12.2010, 19:18:04 
pyro Cytat(michal123 @ 4.12.2010, 19:18:04... 4.12.2010, 19:42:04
Rid Ja na każdym inpucie wprowadziłem preg_match jako... 18.12.2010, 18:51:37
propage A moje pytanie jest takie:
Czy jest gdzieś zesta... 30.01.2011, 14:14:45
Crozin @propage: A teraz wyobraź sobie, że tutaj na forum... 30.01.2011, 14:26:14
propage to wyjątkowa sytuacja, nie mam zamiaru robić forum... 30.01.2011, 14:54:43 
pyro Cytat(propage @ 30.01.2011, 14:54:43 ... 30.01.2011, 21:45:29
Crozin Cytatto wyjątkowa sytuacja, nie mam zamiaru robić ... 30.01.2011, 21:56:07
propage Cytat(Crozin @ 30.01.2011, 21:56:07 )... 31.01.2011, 08:43:00
pyro W tym przypadku wystarczy (zakładając, że wszystki... 31.01.2011, 19:40:07
propage pyro, przed czym ma zabezpieczyć ten kod?
jesli... 1.02.2011, 12:21:29
nospor @propage aleś ty cwany... wyciąłeś kawałek z kodu ... 1.02.2011, 12:26:23
propage nie zauważyłem tej funkcji, to jest wystarczające ... 1.02.2011, 12:49:00
nospor Cytatnie zauważyłem tej funkcji,Kod miał 4 linijki... 1.02.2011, 12:53:35
japolak chciałbym sie dowiedzieć jakie jest/są w "mia... 28.07.2011, 19:29:43 
kilas88 Cytat(japolak @ 28.07.2011, 20:29:43 ... 28.07.2011, 19:41:14 
pyro Cytat(japolak @ 28.07.2011, 20:29:43 ... 8.08.2011, 14:10:14
gargamel Nie znalazłem w temacie, więc pozwolę sobie dodać ... 10.08.2011, 16:08:26
Inscure Byłby ktoś tak miły, żeby streścić cały ten temat ... 11.08.2011, 17:18:05
Noidea @Inscure
W celu zabezpieczenia się przed atakami S... 12.08.2011, 09:05:51
skowron-line A pro po tematu znalazłem dziś na dzone.com
http:... 12.08.2011, 11:29:37
thek @Noidea: nie spłycaj tak, bo nie masz do końca rac... 12.08.2011, 13:06:45
Noidea PDO jest dostępne w PHP gdzieś od wersji 5.1. MySQ... 12.08.2011, 14:51:22
thek Noidea... A ja napiszę, że zamiast prepared statem... 12.08.2011, 20:15:26
Noidea Sparametryzowane wywołanie procedur składowanych z... 13.08.2011, 08:25:34
kuba32 Witam, chciałbym się dowiedzieć czy mając włączone... 23.08.2011, 17:57:25
drozdii07 magic_quotes to najgorsze co może być.. Wyłącz to ... 23.08.2011, 20:12:15
kuba32 No właśnie niby mówi się, że magic_quotes jest ble... 24.08.2011, 13:59:58
erix Cytatkiedy swoją aplikacje będziemy musieli przeni... 24.08.2011, 14:14:13
henio Chciałbym dowiedzieć się czy używanie PDO i metod ... 27.09.2011, 13:24:13
fr33d0m Przeczytałem cały temat i zastanawia mnie dlaczego... 13.10.2011, 11:47:42
SHiP O ile w normalnych warunkach wszystko jest ok to j... 13.10.2011, 12:11:06 
pyro Cytat(SHiP @ 13.10.2011, 12:11:06 ) S... 4.11.2011, 17:46:58
fr33d0m Nie zagłębiam się aż tak w inne kodowanie niż euro... 13.10.2011, 12:22:47
SHiP Chodziło mi o przedstawienie przykładu, który poka... 13.10.2011, 12:28:18
cudny Cytat(pyro @ 4.11.2011, 17:46:58 ) A ... 5.11.2011, 12:00:35 
pyro Cytat(cudny @ 5.11.2011, 12:00:35 ) A... 5.11.2011, 20:48:46
ficiek Jest prosty sposób na szybkie wyczyszczenie danych... 6.11.2011, 12:53:56
cudny Cytat(pyro @ 5.11.2011, 20:48:46 ) No... 7.11.2011, 23:45:47 
pyro Cytat(cudny @ 7.11.2011, 23:45:47 ) N... 8.11.2011, 22:12:41
fernet Temt SQL Injection/Insertion nigdy mnie nie dotycz... 12.11.2011, 21:47:38
sebekzosw takie pytanie - dane filtrować mysql_real_escape_s... 20.03.2012, 11:47:54
nospor Przeczytaj do czego służy mysql_real_escape_strin... 20.03.2012, 11:56:12
szymon1215 Użycie PDO w następujący sposób
[PHP] pobierz, pla... 12.07.2012, 13:19:38
Mephistofeles Tak. 14.07.2012, 10:59:11
Dominator Jeśli będę używał PDO zamiast MySQL do łączenia si... 14.07.2012, 22:38:30
Mephistofeles Po pierwsze nie zamiast MySQL, co najwyżej mysql_ ... 14.07.2012, 22:45:36
Dominator A gdzie mogę zobaczyć przykład zapytań preparowany... 15.07.2012, 11:29:35
Mephistofeles Stronę wcześniej w tym temacie . 15.07.2012, 11:49:08
Dominator Czyli ten kod jest preparowaniem zmiennych, tak ?
... 15.07.2012, 13:37:13
d3ut3r tak. 15.07.2012, 13:51:12
Dominator Dobra, po przeczytaniu lektury w tym temacie od dn... 24.07.2012, 22:48:55
Cadmer Witam
Chciałbym potwierdzić kilka rzeczy:
1. Czy f... 21.01.2013, 22:12:19 
pyro Cytat(Cadmer @ 21.01.2013, 22:12:19 )... 21.01.2013, 22:17:21
Cadmer Dzięki z szybką i konkretną odpowiedz.
Co do 1. to... 21.01.2013, 23:19:03 
pyro Cytat(Cadmer @ 21.01.2013, 23:19:03 )... 21.01.2013, 23:38:04
Cadmer Na dobrą sprawę moim problemem nie jest niewiedza ... 22.01.2013, 17:49:30 
pyro Cytat(Cadmer @ 22.01.2013, 17:49:30 )... 22.01.2013, 18:08:50 
Piotrbaz Cytat(pyro @ 22.01.2013, 18:08:50 ) 1... 3.02.2013, 18:05:56
Cadmer Cóż można tam wstawić ID jakiegokolwiek użytkownik... 22.01.2013, 22:22:41
pyro Cytat(Cadmer @ 22.01.2013, 22:22:41 )... 3.02.2013, 21:40:08
Piotrbaz No ok, czyli htmlspecialchars() stosuje przed wyśw... 3.02.2013, 23:11:32
pyro Tak, prepared statements w PDO powinny załatwić sp... 3.02.2013, 23:17:57
Wasper Czesc,
troche tego duzo, szczerze, nie mam czasu ... 4.03.2013, 12:04:37
!*! Zostaw te bzdury zaczynające się od mysql_* w manu... 4.03.2013, 12:25:07 ![]() ![]() |
|
Aktualny czas: 1.12.2025 - 21:24 |