Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Atak przez formularz kontaktowy
Forum PHP.pl > Forum > PHP
markonix
Dostałem dzisiaj po angielsku e-mail, że mam lukę na stronie.
Na dowód dostałem wersje bazy danych oraz login i hasło (oczywiście hash) pierwszego rekordu z tabeli "users".
E-mail napisany w przyjemnym tonie, że chcieli tylko sprawdzić i do mnie należy co dalej.

Odpisałem dość lakonicznie jaka oferta, bla bla ale generalnie 150$ za wskazanie luki.

Wolałbym dojść sam do tej luki. W nocy dostałem kilkaset e-maili przez formularz kontaktowych. Większość to taki bełkot typu "gtvsdywl", potem ciekawsze typu
Kod
(select convert(int,CHAR(65)))

Kod
?''?""

Kod
-1' OR 3*2<(0+5+278-278) --

Kod
(select(0)from(select(sleep(15)))v)/*'+(select(0)from(select(sleep(15)))v)+'"+(select(0)from(select(sleep(15)))v)+"*/

Kod
if(now()=sysdate(),sleep(5),0)/*'XOR(if(now()=sysdate(),sleep(5),0))OR'"XOR(if(now()=sysdate(),sleep(5),0))OR"*/

pomiędzy tymi e-mailami te z bełkotem.

Wszystko w ciągi minuty.
Po kilku minutach dostałem e-mail od gościa.

W ogóle mnie zastanawia czy SQL injection jest w ogóle możliwy przez formularz kontaktowy, gdy ten jako tako nie wykonuje żadnych zapytań bezpośrednio do bazy?
Może to był tylko jeden wektor ataku, który się akurat nie udał?
Formularz kontaktowy i tak jest częścią oprogramowania (na szczęście otwarty kod) więc nie mam na niego dużego wpływu, mogę go tylko przeanalizować i poprawić.
Crozin
Tak, może być, ale bez źródeł nie da się niczego powiedzieć.
redeemer
Po pierwsze to co zrobili jest nielegalne (i te 150 USD, hehe dobrze, że nie BTC).

Cytat(markonix @ 15.01.2016, 15:21:36 ) *
...
W ogóle mnie zastanawia czy SQL injection jest w ogóle możliwy przez formularz kontaktowy, gdy ten jako tako nie wykonuje żadnych zapytań bezpośrednio do bazy?
Nie (co to znaczy "jako tako"?), więc albo masz tam zapytania do bazy, albo masz SQLi w innym miejscu (w logach masz payloady bo "testowali" też formularz).

Przetestuj dokładnie czy to formularz, jak nie to przegrepuj logi po IP tego co pukał na formularz kontaktowy i zobacz reszte requestów. Dodatkowo, jeżeli typ SQLi był time-based blind to możesz poszukać w slowlogu nietypowych zapytań.
com
przepuścili ja pewnie przez automat, stąd tez wygenerowane zostało to w ciągu minuty, trudno stwierdzić co jest podatne nie znając całości systemu, ale SQL Injection to nie jedyny rodzaj ataku, mogłeś sam mu się np podłożyć poprzez XSS.
!*!
@markonix - załatałeś to?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.