mirror of
				https://github.com/HackTricks-wiki/hacktricks.git
				synced 2025-10-10 18:36:50 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			30 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			30 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| # MySQL File priv do SSRF/RCE
 | |
| 
 | |
| {{#include ../../../banners/hacktricks-training.md}}
 | |
| 
 | |
| **To jest podsumowanie technik MySQL/MariaDB/Percona z [https://ibreak.software/2020/06/using-sql-injection-to-perform-ssrf-xspa-attacks/](https://ibreak.software/2020/06/using-sql-injection-to-perform-ssrf-xspa-attacks/)**.
 | |
| 
 | |
| ### Server-Side Request Forgery (SSRF) za pomocą funkcji SQL
 | |
| 
 | |
| W badaniach nad eksfiltracją danych SQL Out of Band, funkcja `LOAD_FILE()` jest powszechnie stosowana do inicjowania żądań sieciowych. Funkcja ta jest jednak ograniczona przez system operacyjny, na którym działa, oraz konfiguracje uruchamiania bazy danych.
 | |
| 
 | |
| Globalna zmienna `secure_file_priv`, jeśli nie jest ustawiona, domyślnie wskazuje na `/var/lib/mysql-files/`, ograniczając dostęp do plików tylko do tego katalogu, chyba że zostanie ustawiona na pusty ciąg (`""`). Ta zmiana wymaga modyfikacji w pliku konfiguracyjnym bazy danych lub parametrach uruchamiania.
 | |
| 
 | |
| Jeśli `secure_file_priv` jest wyłączona (`""`), a wymagane uprawnienia do plików i `file_priv` są przyznane, pliki spoza wyznaczonego katalogu mogą być odczytywane. Niemniej jednak, zdolność tych funkcji do wykonywania wywołań sieciowych jest w dużej mierze uzależniona od systemu operacyjnego. W systemach Windows wywołania sieciowe do ścieżek UNC są możliwe dzięki zrozumieniu konwencji nazewnictwa UNC przez system operacyjny, co może prowadzić do eksfiltracji hashy NTLMv2.
 | |
| 
 | |
| Metoda SSRF jest ograniczona do portu TCP 445 i nie pozwala na modyfikację numeru portu, chociaż może być używana do uzyskiwania dostępu do udziałów z pełnymi uprawnieniami do odczytu i, jak pokazano w wcześniejszych badaniach, do kradzieży hashy w celu dalszej eksploatacji.
 | |
| 
 | |
| ### Zdalne Wykonanie Kodu (RCE) za pomocą Funkcji Użytkownika (UDF)
 | |
| 
 | |
| Bazy danych MySQL oferują możliwość użycia Funkcji Użytkownika (UDF) z zewnętrznych plików bibliotecznych. Jeśli te biblioteki są dostępne w określonych katalogach lub w `$PATH` systemu, mogą być wywoływane z poziomu MySQL.
 | |
| 
 | |
| Technika ta pozwala na wykonywanie żądań sieciowych/HTTP za pomocą UDF, pod warunkiem spełnienia kilku warunków, w tym dostępu do zapisu do `@@plugin_dir`, `file_priv` ustawionego na `Y` oraz wyłączenia `secure_file_priv`.
 | |
| 
 | |
| Na przykład, biblioteka `lib_mysqludf_sys` lub inne biblioteki UDF umożliwiające żądania HTTP mogą być załadowane w celu wykonania SSRF. Biblioteki muszą być przeniesione na serwer, co można osiągnąć poprzez kodowanie hex lub base64 zawartości biblioteki, a następnie zapisanie jej w odpowiednim katalogu.
 | |
| 
 | |
| Proces ten różni się, jeśli `@@plugin_dir` nie jest zapisywalny, szczególnie dla wersji MySQL powyżej `v5.0.67`. W takich przypadkach należy użyć alternatywnych ścieżek, które są zapisywalne.
 | |
| 
 | |
| Automatyzacja tych procesów może być ułatwiona przez narzędzia takie jak SQLMap, które wspierają wstrzykiwanie UDF, a w przypadku ślepych wstrzyknięć SQL mogą być wykorzystywane techniki przekierowywania wyjścia lub smugglingu żądań DNS.
 | |
| 
 | |
| {{#include ../../../banners/hacktricks-training.md}}
 |