MySQL File priv to SSRF/RCE

Support HackTricks

Hii ni muhtasari wa mbinu za MySQL/MariaDB/Percona kutoka https://ibreak.software/2020/06/using-sql-injection-to-perform-ssrf-xspa-attacks/.

Server-Side Request Forgery (SSRF) kupitia SQL Functions

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 vizuizi 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 saraka hii 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 ikitazamiwa kuwa ruhusa za faili na file_priv zimetolewa, faili za nje ya saraka iliyoainishwa 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.

Remote Code Execution (RCE) kupitia User Defined Functions (UDF)

Hifadhidata za MySQL zinatoa matumizi ya User Defined Functions (UDF) kutoka kwa faili za maktaba za nje. Ikiwa maktaba hizi zinapatikana ndani ya saraka 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 saraka 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 kuwezeshwa na zana kama SQLMap, ambayo inasaidia UDF injection, na kwa SQL injections za kipofu, uelekezaji wa matokeo au mbinu za DNS request smuggling zinaweza kutumika.

Support HackTricks

Last updated