disable_functions bypass - dl function
Important note:
dl
ni kazi ya PHP ambayo inaweza kutumika kupakia nyongeza za PHP. Ikiwa kazi hiyo haijazuiliwa inaweza kutumika vibaya ili kuzidi disable_functions
na kutekeleza amri zisizo na mipaka.
Hata hivyo, ina mipaka kadhaa kali:
Kazi ya
dl
lazima iwe ipo katika mazingira na isiwe imezuiliwaNyongeza ya PHP lazima iwe imejumuishwa na toleo kuu sawa (toleo la API la PHP) ambalo seva inatumia (unaweza kuona habari hii katika matokeo ya phpinfo)
Nyongeza ya PHP lazima iwe imewekwa katika saraka ambayo ime mwelekeo na
extension_dir
(unaweza kuona katika matokeo ya phpinfo). Ni vigumu sana kwamba mshambuliaji anayejaribu kutumia seva atakuwa na ufikiaji wa kuandika katika saraka hii, hivyo hitaji hili labda litakuzuia kutumia mbinu hii).
Ikiwa unakidhi mahitaji haya, endelea kusoma chapisho https://antichat.com/threads/70763/ kujifunza jinsi ya kuzidi disable_functions. Hapa kuna muhtasari:
Kazi ya dl inatumika kupakia nyongeza za PHP kwa njia ya kidinamikali wakati wa utekelezaji wa skripti. Nyongeza za PHP, ambazo kwa kawaida zimeandikwa kwa C/C++, zinaongeza uwezo wa PHP. Mshambuliaji, baada ya kugundua kuwa kazi ya dl
haijazuiliwa, anaamua kuunda nyongeza maalum ya PHP ili kutekeleza amri za mfumo.
Hatua zilizochukuliwa na Mshambuliaji:
Utambuzi wa Toleo la PHP:
Mshambuliaji anabaini toleo la PHP kwa kutumia skripti (
<?php echo 'PHP Version is '.PHP_VERSION; ?>
).
Upataji wa Chanzo cha PHP:
Anapakua chanzo cha PHP kutoka kwenye tovuti rasmi ya PHP au archive ikiwa toleo ni la zamani.
Usanidi wa PHP wa Mitaa:
Anatoa na kufunga toleo maalum la PHP kwenye mfumo wake.
Uundaji wa Nyongeza:
Anasoma kuunda nyongeza za PHP na kuchunguza msimbo wa chanzo cha PHP.
Anazingatia kuiga uwezo wa exec function iliyoko katika
ext/standard/exec.c
.
Maelezo ya Kuunda Nyongeza Maalum:
ZEND_MODULE_API_NO:
ZEND_MODULE_API_NO
katikabypass.c
lazima ikidhi ujenzi wa sasa wa Zend Extension, inayoweza kupatikana kwa:
Mabadiliko ya PHP_FUNCTION:
Kwa matoleo ya hivi karibuni ya PHP (5, 7, 8),
PHP_FUNCTION(bypass_exec)
inaweza kuhitaji marekebisho. Kipande cha msimbo kilichotolewa kinaelezea mabadiliko haya.
Faili za Nyongeza Maalum:
bypass.c:
Inatekeleza uwezo wa msingi wa nyongeza maalum.
php_bypass.h:
Faili ya kichwa, ikifafanua mali za nyongeza.
config.m4:
Inatumika na
phpize
kuunda mazingira ya ujenzi kwa nyongeza maalum.
Kujenga Nyongeza:
Amri za Uundaji:
Inatumia
phpize
,./configure
, namake
kuunda nyongeza.bypass.so
inayotokana kisha hupatikana katika saraka ndogo ya moduli.
Usafishaji:
Inatekeleza
make clean
naphpize --clean
baada ya uundaji.
Kupakia na Kutekeleza kwenye Kituo cha Mtu:
Ulinganifu wa Toleo:
Inahakikisha matoleo ya API ya PHP yanalingana kati ya mifumo ya mshambuliaji na waathirika.
Upakiaji wa Nyongeza:
Inatumia kazi ya
dl
, ikipita vizuizi kwa kutumia njia za uhusiano au skripti ili kuendesha mchakato.
Utekelezaji wa Skripti:
Mshambuliaji anapakia
bypass.so
na skripti ya PHP kwenye seva ya waathirika.Skripti inatumia kazi ya
dl_local
kupakia kwa kidinamikalibypass.so
na kisha inaitabypass_exec
na amri iliyopitishwa kupitia parameta ya swalicmd
.
Utekelezaji wa Amri:
Mshambuliaji sasa anaweza kutekeleza amri kwa kufikia:
http://www.example.com/script.php?cmd=<command>
Muhtasari huu wa kina unaelezea mchakato wa kuunda na kupeleka nyongeza ya PHP ili kutekeleza amri za mfumo, ikitumia kazi ya dl
, ambayo kwa kawaida inapaswa kuzuiliwa ili kuzuia uvunjaji wa usalama kama huu.
Last updated