2013-05-17 13 views
6

Wyniki dla ZAP OWASP były bardzo przydatne do eliminowania wrażliwych części mojej witryny.Dlaczego/Jak jest "value =" javascript: alert (1) "" uważany za lukę XSS w narzędziu ZAP OWASP?

Jednak znalazłem wiele wyników, których po prostu nie mogę naprawić. Na przykład jeden z parametrów get ustawił javascript:alert(1); w zmiennej. Ta zmienna jest następnie wyprowadzana przez PHP w atrybucie ukrytego elementu o wartości value. Ostateczny kod HTML wygląda następująco:

<input type="hidden" name="someName" id="someID" value="javascript:alert(1);"/> 

Ta wartość jest zwykle używana do zapełnienia menu rozwijanego przy pomocy JavaScript. Jeśli jest 1, pokazuje opcjonalne filtry wyszukiwania, jeśli 0 to nic nie pokazuje. Jest więc używany tylko przy porównywaniu ciągów, które zawodzą.

Nie widzę możliwości wykorzystania tego, alert nie działa tak, jak inne ataki pokazane mi przez ZAP. Dane wyjściowe są zakodowane, więc nie mogą wstrzyknąć kodu HTML, kończąc cytaty lub element wcześnie z "/>, podobnie jak wcześniej wykryte ataki, ponieważ te znaki stają się ich odpowiednikami w HTML.

Czy jest to tylko fałszywe potwierdzenie z ZAP pasujące do ciągu wejściowego w źródle strony, ponieważ kodowanie javascript:alert(1); nadal jest dokładnie takie samo jak javascript:alert(1);?

+0

Może to pomóc http://stackoverflow.com/questions/23838300/how-to-solve-owasp-zap-reported-alert1-xss-ululność – Anil

Odpowiedz

1

Tak, ZAP firmy OWASP próbuje znaleźć luki w Twojej witrynie i działa automatycznie.

Jeśli dodawanie KAŻDEGO CZĘŚCI kodu do witryny okaże się skuteczne, strona internetowa jest traktowana jako podatna na ataki automatycznie.

Jeśli Twoja witryna akceptuje wartość "0" lub "1" jako wartość ukrytych danych wejściowych i nie zapisuje ani nie wyświetla wartości w dowolnym miejscu (nawet w przypadku plików cookie), nie stanowi to luki w zabezpieczeniach, a Ty jest bezpieczny.

1

Usterka oznacza, że ​​ZAP zdołał wprowadzić dowolny kod do tego pola wejściowego. Oznacza to, że najprawdopodobniej nie sprawdzasz poprawności danych wprowadzanych przez użytkownika w aplikacji.

Powinieneś być ostrożniejszy w generowaniu tego pola wejściowego i upewnić się, że parametry GET użyte do jego wygenerowania są odpowiednio sprawdzane.

Pamiętaj, lepiej jest być bezpiecznym, niż żałować (to znaczy, że Twoja aplikacja została naruszona).

0

Twój kod HTML wygląda na bezpieczny. Należy jednak rozważyć podobny przypadek:

<a href="javascript:alert(1);">test</a> 

Spowoduje to utworzenie linku, który wykona JavaScript. Możliwe, że ZAP jest wyjątkowo ostrożny, aby takie przypadki zostały zauważone.

W tym konkretnym przypadku należy dodać do białej listy, jakie schematy adresów URL są dozwolone w linkach dostarczanych przez użytkowników. Na przykład zezwól tylko na http, https, mailto itp.

Powiązane problemy