disable_functions bypass - dl function

Leer AWS-hacking van nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun:

Belangrike nota:

dl is 'n PHP-funksie wat gebruik kan word om PHP-uitbreidings te laai. As die funksie nie gedeaktiveer is nie, kan dit misbruik word om disable_functions te omseil en arbitrêre opdragte uit te voer. Dit het egter 'n paar streng beperkings:

  • Die dl-funksie moet teenwoordig wees in die omgewing en nie gedeaktiveer wees nie.

  • Die PHP-uitbreiding moet gekompileer wees met dieselfde hoofweergawe (PHP API-weergawe) wat die bediener gebruik (jy kan hierdie inligting sien in die uitset van phpinfo).

  • Die PHP-uitbreiding moet geleë wees in die gids wat gedefinieer word deur die extension_dir-riglyn (jy kan dit sien in die uitset van phpinfo). Dit is baie onwaarskynlik dat 'n aanvaller wat probeer om die bediener te misbruik, skryftoegang tot hierdie gids sal hê, so hierdie vereiste sal waarskynlik voorkom dat jy hierdie tegniek kan misbruik.

As jy aan hierdie vereistes voldoen, lees voort na die berig https://antichat.com/threads/70763/ om te leer hoe om disable_functions te omseil. Hier is 'n opsomming:

Die dl-funksie word gebruik om PHP-uitbreidings dinamies tydens skripsuitvoering te laai. PHP-uitbreidings, tipies geskryf in C/C++, verbeter PHP se funksionaliteit. Die aanvaller besluit om 'n aangepaste PHP-uitbreiding te skep om stelselopdragte uit te voer nadat hy besef het dat die dl-funksie nie gedeaktiveer is nie.

Stappe geneem deur die aanvaller:

  1. PHP-weergawe-identifikasie:

  • Die aanvaller bepaal die PHP-weergawe deur 'n skripsie (<?php echo 'PHP-weergawe is '.PHP_VERSION; ?>) te gebruik.

  1. PHP-bronverkryging:

  • Laai die PHP-bron af van die amptelike PHP-webwerf of die argief as die weergawe ouer is.

  1. Plaaslike PHP-opstelling:

  • Pak die spesifieke PHP-weergawe uit en installeer dit op hul stelsel.

  1. Uitbreidingsskepping:

Notas vir die Kompilering van die Aangepaste Uitbreiding:

  1. ZEND_MODULE_API_NO:

  • Die ZEND_MODULE_API_NO in bypass.c moet ooreenstem met die huidige Zend Extension Build, wat verkry kan word met:

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

  • Vir onlangse PHP-weergawes (5, 7, 8) mag PHP_FUNCTION(bypass_exec) aanpassing benodig. Die voorsiene kodefragment beskryf hierdie wysiging in detail.

Lêers vir die Aangepaste Uitbreiding:

  • bypass.c:

  • Implementeer die kernfunksionaliteit van die aangepaste uitbreiding.

  • php_bypass.h:

  • Koptekslêer, definieer uitbreidingskenmerke.

  • config.m4:

  • Word deur phpize gebruik om die bou-omgewing vir die aangepaste uitbreiding te konfigureer.

Die Uitbreiding Bou:

  1. Kompilasie-opdragte:

  • Gebruik phpize, ./configure, en make om die uitbreiding te kompileer.

  • Die resulterende bypass.so word dan in die subgids modules geplaas.

  1. Skoonmaak:

  • Voer make clean en phpize --clean uit na kompilasie.

Oplaai en Uitvoer op die Slagofferbediener:

  1. Weergawekompatibiliteit:

  • Verseker dat die PHP API-weergawes ooreenstem tussen die aanvaller se en slagoffer se stelsels.

  1. Uitbreiding Laai:

  • Maak gebruik van die dl-funksie en omseil beperkings deur relatiewe paaie of 'n skripsie te gebruik om die proses outomaties te maak.

  1. Skripsie-uitvoering:

  • Die aanvaller laai bypass.so en 'n PHP-skripsie na die slagoffer se bediener.

  • Die skripsie gebruik die dl_local-funksie om bypass.so dinamies te laai en roep dan bypass_exec aan met 'n opdrag wat deur die cmd-navraagparameter oorgedra word.

Opdraguitvoering:

  • Die aanvaller kan nou opdragte uitvoer deur toegang te verkry tot: http://www.example.com/script.php?cmd=<opdrag>

Hierdie gedetailleerde deurlooptog verduidelik die proses om 'n PHP-uitbreiding te skep en te implementeer om stelselopdragte uit te voer deur die dl-funksie te misbruik, wat idealiter gedeaktiveer moet word om sulke sekuriteitskendings te voorkom.

Leer AWS-hacking van nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun:

Last updated