disable_functions bypass - dl function
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 imezuiwaNyongeza 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:
Uthibitishaji wa Toleo la PHP:
Mshambuliaji anatambua toleo la PHP kwa kutumia hati (
<?php echo 'Toleo la PHP ni '.PHP_VERSION; ?>
).
Upatikanaji wa Chanzo cha PHP:
Anapakua chanzo cha PHP kutoka tovuti rasmi ya PHP au hifadhi ikiwa toleo ni la zamani.
Usanidi wa PHP wa Ndani:
Anachambua na kusakinisha toleo maalum la PHP kwenye mfumo wake.
Uundaji wa Nyongeza:
Anajifunza kuunda nyongeza za PHP na kuchunguza nambari ya chanzo cha PHP.
Anazingatia kuzidisha utendaji wa kazi ya exec iliyoko kwenye
ext/standard/exec.c
.
Vidokezo vya Kukusanya Nyongeza ya Kibinafsi:
ZEND_MODULE_API_NO:
ZEND_MODULE_API_NO
katikabypass.c
lazima ifanane na Ujenzi wa Zend Extension wa sasa, unaoonekana kwa:
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:
Amri za Kompilisheni:
Inatumia
phpize
,./configure
, namake
kuunda nyongeza.bypass.so
inayopatikana baada ya hapo iko kwenye saraka ya moduli.
Usafi:
Inatekeleza
make clean
naphpize --clean
baada ya ujenzi.
Kupakia na Kutekeleza kwenye Mwenyeji wa Mtu Mwingine:
Ulinganifu wa Toleo:
Inahakikisha toleo la API ya PHP linalingana kati ya mfumo wa mshambuliaji na wa mwathiriwa.
Upakiaji wa Nyongeza:
Inatumia kazi ya
dl
, ikizunguka vizuizi kwa kutumia njia za kihesabu au hati ili kusaidia mchakato.
Utekelezaji wa Hati:
Mshambuliaji anapakia
bypass.so
na hati ya PHP kwenye seva ya mwathiriwa.Hati inatumia kazi ya
dl_local
kupakiabypass.so
kwa njia ya kiotomatiki na kisha inaitabypass_exec
na amri iliyopitishwa kupitia parameter ya utafutaji yacmd
.
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