disable_functions bypass - dl function

Jifunze kuhusu kudukua AWS kutoka sifuri hadi shujaa na htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)!

Njia nyingine za kusaidia HackTricks:

Taarifa muhimu:

dl ni kazi ya PHP ambayo inaweza kutumika kupakia nyongeza za PHP. Ikiwa kazi haizuiwi, inaweza kutumiwa kukiuka disable_functions na kutekeleza amri za ujanja. Hata hivyo, ina vikwazo vifuatavyo:

  • Kazi ya dl lazima iwe ipo katika mazingira na isiwe imezuiwa

  • Nyongeza ya PHP ** lazima iwe imekompiliwa na toleo kuu sawa** (toleo la API ya PHP) ambalo seva inatumia (unaweza kuona habari hii kwenye matokeo ya phpinfo)

  • Nyongeza ya PHP lazima iwe imepo katika saraka iliyo takatifu na extension_dir agizo (unaweza kuiona kwenye matokeo ya phpinfo). Ni vigumu sana kwa mshambuliaji anayejaribu kudhuru seva kuwa na ufikiaji wa kuandika juu ya saraka hii, kwa hivyo mahitaji haya labda yatakuzuia kudhuru mbinu hii).

Ikiwa unakidhi mahitaji haya, endelea kusoma chapisho https://antichat.com/threads/70763/ ili kujifunza jinsi ya kukiuka disable_functions. Hapa kuna muhtasari:

Kazi ya dl hutumiwa kupakia nyongeza za PHP kwa njia ya kiotomatiki wakati wa kutekeleza hati. Nyongeza za PHP, kwa kawaida zimeandikwa kwa C/C++, huongeza utendaji wa PHP. Mshambuliaji, baada ya kugundua kuwa kazi ya dl haijazuiwa, anachagua kuunda nyongeza ya kipekee ya PHP ili kutekeleza amri za mfumo.

Hatua zilizochukuliwa na Mshambuliaji:

  1. Uthibitishaji wa Toleo la PHP:

  • Mshambuliaji anatambua toleo la PHP kwa kutumia hati (<?php echo 'Toleo la PHP ni '.PHP_VERSION; ?>).

  1. Upatikanaji wa Chanzo cha PHP:

  1. Usanidi wa PHP wa Ndani:

  • Anachambua na kusakinisha toleo maalum la PHP kwenye mfumo wake.

  1. Uundaji wa Nyongeza:

Vidokezo vya Kukusanya Nyongeza ya Kibinafsi:

  1. ZEND_MODULE_API_NO:

  • ZEND_MODULE_API_NO katika bypass.c lazima ifanane na Ujenzi wa Zend Extension wa sasa, unaoonekana kwa:

php -i | grep "Zend Extension Build" |awk -F"API4" '{print $2}' | awk -F"," '{print $1}'
  1. Mabadiliko ya PHP_FUNCTION:

  • Kwa toleo jipya la PHP (5, 7, 8), PHP_FUNCTION(bypass_exec) inaweza kuhitaji marekebisho. Msimbo wa nambari uliotolewa unaelezea marekebisho haya.

Faili za Nyongeza ya Kibinafsi:

  • bypass.c:

  • Inatekeleza utendaji wa msingi wa nyongeza ya kibinafsi.

  • php_bypass.h:

  • Faili ya kichwa, inayofafanua mali za nyongeza.

  • config.m4:

  • Inatumika na phpize kuwezesha mazingira ya ujenzi kwa nyongeza ya kibinafsi.

Kujenga Nyongeza:

  1. Amri za Kompilisheni:

  • Inatumia phpize, ./configure, na make kuunda nyongeza.

  • bypass.so inayopatikana baada ya hapo iko kwenye saraka ya moduli.

  1. Usafi:

  • Inatekeleza make clean na phpize --clean baada ya ujenzi.

Kupakia na Kutekeleza kwenye Mwenyeji wa Mtu Mwingine:

  1. Ulinganifu wa Toleo:

  • Inahakikisha toleo la API ya PHP linalingana kati ya mfumo wa mshambuliaji na wa mwathiriwa.

  1. Upakiaji wa Nyongeza:

  • Inatumia kazi ya dl, ikizunguka vizuizi kwa kutumia njia za kihesabu au hati ili kusaidia mchakato.

  1. Utekelezaji wa Hati:

  • Mshambuliaji anapakia bypass.so na hati ya PHP kwenye seva ya mwathiriwa.

  • Hati inatumia kazi ya dl_local kupakia bypass.so kwa njia ya kiotomatiki na kisha inaita bypass_exec na amri iliyopitishwa kupitia parameter ya utafutaji ya cmd.

Utekelezaji wa Amri:

  • Mshambuliaji sasa anaweza kutekeleza amri kwa kupata: http://www.example.com/script.php?cmd=<amri>

Maelezo haya ya kina yanafafanua mchakato wa kuunda na kutekeleza nyongeza ya PHP ili kutekeleza amri za mfumo, kwa kudukua kazi ya dl, ambayo kimsingi inapaswa kuzuiwa ili kuzuia uvunjaji wa usalama kama huo.

Last updated