LFI2RCE via PHP_SESSION_UPLOAD_PROGRESS
Taarifa Msingi
Ikiwa umepata Uingizaji wa Faili wa eneo la ndani (LFI) hata ikiwa huna kikao na session.auto_start
ni Off
. Ikiwa session.upload_progress.enabled
ni On
na unatoa PHP_SESSION_UPLOAD_PROGRESS
katika data ya POST ya sehemu nyingi, PHP ita kuwezesha kikao kwako.
Tafadhali kumbuka kuwa na PHP_SESSION_UPLOAD_PROGRESS
unaweza kudhibiti data ndani ya kikao, kwa hivyo ikiwa unajumuisha faili yako ya kikao unaweza kujumuisha sehemu unayodhibiti (kama vile shellcode ya php).
Ingawa mafunzo mengi kwenye mtandao yanapendekeza kuweka session.upload_progress.cleanup
kuwa Off
kwa madhumuni ya kurekebisha makosa. Mazingira ya chaguo-msingi ya session.upload_progress.cleanup
katika PHP bado ni On
. Hii inamaanisha kuwa maendeleo yako ya kupakia kwenye kikao yatafutwa haraka iwezekanavyo. Kwa hivyo hii itakuwa Hali ya Mashindano.
CTF
Katika CTF asili ambapo mbinu hii inazungumziwa, haikuwa ya kutosha kuchexploit Hali ya Mashindano lakini yaliyomo yaliyopakiwa pia yalihitaji kuanza na herufi @<?php
.
Kutokana na mipangilio ya chaguo-msingi ya session.upload_progress.prefix
, faili yetu ya KIKAO itaanza na kipengee cha kuanza cha kuchosha upload_progress_
Kama vile: upload_progress_controlledcontentbyattacker
Hila ya kuondoa kipengee cha kuanza ilikuwa kubadilisha msimbo wa malipo kuwa msimbo wa msingi wa 64 mara 3 na kisha kudekodea kupitia filters za convert.base64-decode
, hii ni kwa sababu wakati wa kudekodea msimbo wa msingi wa 64 PHP itaondoa herufi zisizo za kawaida, kwa hivyo baada ya mara 3 tu malipo yaliyotumwa na mshambuliaji yatakuwa yamebaki (na kisha mshambuliaji anaweza kudhibiti sehemu ya kuanza).
Maelezo zaidi katika andiko asili https://blog.orange.tw/2018/10/ na shambulio la mwisho https://github.com/orangetw/My-CTF-Web-Challenges/blob/master/hitcon-ctf-2018/one-line-php-challenge/exp_for_php.py Andiko lingine katika https://spyclub.tech/2018/12/21/one-line-and-return-of-one-line-php-writeup/
Last updated