Spisu treści:
Definicja - Co oznacza wstrzyknięcie XPath?
Wstrzykiwanie XPath to technika ataku wykorzystywana do wykorzystywania aplikacji służących do konstruowania zapytań XPath na podstawie danych wejściowych dostarczonych przez użytkownika. Może być używany bezpośrednio przez aplikację do wysyłania zapytań do dokumentu XML, nawet w ramach większego procesu, takiego jak transformacja XSLT do dokumentu XML. W porównaniu z zastrzykami SQL, zastrzyki XPath są bardziej destrukcyjne, ponieważ XPath nie ma kontroli dostępu i zapewnia wyszukiwanie kompletnych baz danych. Pełne zapytania do bazy danych SQL są trudne, ponieważ nie można wyszukiwać metatablów za pomocą zwykłych zapytań.
Techopedia wyjaśnia XPath Injection
XPath, jako język standardowy, ma składnię niezależną od implementacji. To sprawia, że atak jest bardziej zautomatyzowany. Atak wstrzykiwania XPath działa w podobny sposób jak wstrzykiwanie SQL, przy czym strona internetowa korzysta z informacji dostarczonych przez użytkownika do zbudowania zapytania XPath dla danych XML. Zniekształcone informacje są celowo wstrzykiwane do witryny, umożliwiając osobie atakującej wymyślenie metody, w której dane XML są ustrukturyzowane, w celu uzyskania dostępu do danych, które w przeciwnym razie pozostałyby nieautoryzowane. Atakujący mogą następnie podnieść uprawnienia, jakie mają na stronie internetowej, manipulując procesem uwierzytelniania danych XML. Innymi słowy, podobnie jak wstrzykiwanie SQL, technika polega na określeniu pewnych atrybutów i uzyskaniu wzorców, które można dopasować, które następnie pozwalają osobie atakującej na ominięcie uwierzytelnienia lub dostęp do informacji w nieautoryzowany sposób. Największa różnica między iniekcją XPath a iniekcją SQL polega na tym, że iniekcja XPath wykorzystuje pliki XML do przechowywania danych, podczas gdy SQL korzysta z bazy danych.
Wstrzyknięciu XPath można zapobiec za pomocą technik obrony, takich jak odkażanie danych wejściowych użytkownika lub traktowanie wszystkich danych wejściowych użytkownika jako niezaufanych i wykonywanie niezbędnych technik odkażania lub intensywne testowanie aplikacji, które dostarczają lub wykorzystują dane wejściowe użytkownika.