MySQL File priv to SSRF/RCE
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Hii ni muhtasari wa mbinu za MySQL/MariaDB/Percona kutoka https://ibreak.software/2020/06/using-sql-injection-to-perform-ssrf-xspa-attacks/.
Katika uchunguzi wa SQL Out of Band data exfiltration, kazi ya LOAD_FILE()
mara nyingi hutumika kuanzisha maombi ya mtandao. Hata hivyo, kazi hii inakabiliwa na mipaka na mfumo wa uendeshaji ambao inafanya kazi na mipangilio ya kuanzisha ya hifadhidata.
Kigezo cha secure_file_priv
cha kimataifa, ikiwa hakijapangwa, kinarejelea /var/lib/mysql-files/
, kikizuia ufikiaji wa faili kwenye hii directory isipokuwa kimewekwa kuwa string tupu (""
). Marekebisho haya yanahitaji mabadiliko katika faili ya mipangilio ya hifadhidata au vigezo vya kuanzisha.
Kama secure_file_priv
imezimwa (""
), na tukichukulia kuwa ruhusa za faili na file_priv
zimetolewa, faili za nje ya directory iliyotengwa zinaweza kusomwa. Hata hivyo, uwezo wa hizi kazi kufanya simu za mtandao unategemea sana mfumo wa uendeshaji. Katika mifumo ya Windows, simu za mtandao kwa njia za UNC zinaweza kufanyika kutokana na uelewa wa mfumo wa uendeshaji wa kanuni za kutaja za UNC, ambayo inaweza kusababisha kuvuja kwa NTLMv2 hashes.
Mbinu hii ya SSRF inakabiliwa na bandari ya TCP 445 na hairuhusu mabadiliko ya nambari ya bandari, ingawa inaweza kutumika kufikia sehemu zenye ruhusa kamili za kusoma na, kama ilivyoonyeshwa katika utafiti wa awali, kuiba hashes kwa matumizi zaidi.
Hifadhidata za MySQL zinatoa matumizi ya User Defined Functions (UDF) kutoka kwa faili za maktaba za nje. Ikiwa maktaba hizi zinapatikana ndani ya directories maalum au $PATH
ya mfumo, zinaweza kuitwa kutoka ndani ya MySQL.
Mbinu hii inaruhusu utekelezaji wa maombi ya mtandao/HTTP kupitia UDF, ikiwa masharti kadhaa yanakidhi, ikiwa ni pamoja na ufikiaji wa kuandika kwenye @@plugin_dir
, file_priv
imewekwa kuwa Y
, na secure_file_priv
imezimwa.
Kwa mfano, maktaba ya lib_mysqludf_sys
au maktaba nyingine za UDF zinazowezesha maombi ya HTTP zinaweza kupakiwa ili kutekeleza SSRF. Maktaba hizo lazima zipelekwe kwenye seva, ambayo inaweza kufanywa kupitia hex au base64 encoding ya maudhui ya maktaba na kisha kuandika kwenye directory inayofaa.
Mchakato huu hubadilika ikiwa @@plugin_dir
haiwezi kuandikwa, hasa kwa toleo za MySQL zaidi ya v5.0.67
. Katika hali hizo, njia mbadala ambazo zinaweza kuandikwa lazima zitumike.
Automatisering ya michakato hii inaweza kuwezesha kwa zana kama SQLMap, ambayo inasaidia UDF injection, na kwa SQL injections za kipofu, uelekezaji wa matokeo au mbinu za DNS request smuggling zinaweza kutumika.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)