<summary><strong>AWS hacklemeyi sıfırdan kahramanla öğrenin</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
* **Şirketinizi HackTricks'te reklam vermek isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARINA**](https://github.com/sponsors/carlospolop) göz atın!
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimizden**](https://opensea.io/collection/the-peass-family) oluşan 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.
XPath (XML Yol Dili) sorgularını kullanıcı girişine dayalı olarak oluşturan uygulamalardan yararlanmak için XPath Enjeksiyonu adı verilen bir saldırı tekniği kullanılır.
- **/bookstore/book[1]**: bookstore elementinin ilk book elementi seçilir. IE 5'ten 9'a kadar olan sürümler için, ilk düğümü [0] olarak indeksleyen bir çözüm, JavaScript aracılığıyla SelectionLanguage'i XPath olarak ayarlamaktır.
- **/bookstore/book[last()]**: bookstore elementinin son book elementi seçilir.
- **/bookstore/book[last()-1]**: bookstore elementinin sondan bir önceki book elementi seçilir.
XPath enjeksiyonu, bir web uygulamasının veritabanına XPath sorguları göndererek hedefin hassas bilgilerine erişmeyi amaçlayan bir saldırı tekniğidir. Bu saldırı tekniği, web uygulamasının giriş alanlarına kötü niyetli XPath ifadeleri enjekte ederek gerçekleştirilir.
XPath enjeksiyonu saldırısını gerçekleştirmek için aşağıdaki adımları izleyebilirsiniz:
XPath enjeksiyonu saldırısıyla hedefin veritabanına erişebilir ve kullanıcı kimlik bilgileri, şifreler, finansal veriler gibi hassas bilgileri elde edebilirsiniz. Bu nedenle, web uygulamalarının XPath enjeksiyonu saldırılarına karşı korunması önemlidir.
XPath enjeksiyonu, bir web uygulamasının veritabanı şemasını tanımlamak ve çalmak için kullanılabilir. Şema, veritabanının yapısını ve içerdiği tabloları, sütunları ve ilişkileri belirtir. Bu bilgiler, saldırganın hedef uygulamanın veritabanına erişim sağlamasına ve daha fazla saldırı yapmasına yardımcı olabilir.
XPath enjeksiyonu kullanarak şema bilgilerini çalmak için aşağıdaki adımları izleyebilirsiniz:
1. İlk olarak, hedef uygulamada XPath enjeksiyonu açığı arayın. Bu genellikle kullanıcı tarafından sağlanan girişlerin doğrudan XPath sorgularına dahil edildiği yerlerde bulunabilir.
2. XPath enjeksiyonu açığı bulduktan sonra, hedef uygulamanın veritabanıyla iletişim kurmak için kullanılan XPath sorgusunu belirleyin. Bu sorgu genellikle web uygulamasının arka planında çalışan bir veritabanı sorgusu olacaktır.
3. XPath sorgusunu manipüle etmek için kullanabileceğiniz XPath ifadelerini öğrenin. Bu ifadeler, XPath sorgusunu değiştirerek şema bilgilerini çalmak için kullanılabilir.
4. Şema bilgilerini çalmak için XPath ifadelerini kullanarak XPath sorgusunu manipüle edin. Örneğin, `concat()` fonksiyonunu kullanarak sütun adlarını veya tablo adlarını çalabilirsiniz.
5. Manipüle edilmiş XPath sorgusunu hedef uygulamaya gönderin ve yanıtı analiz edin. Yanıtta şema bilgilerini içeren veriler bulunabilir.
XPath enjeksiyonu kullanarak şema bilgilerini çalmak, saldırganın hedef uygulamadaki veritabanı yapısını anlamasına ve daha fazla saldırı yapmasına yardımcı olabilir. Bu nedenle, web uygulamalarının XPath enjeksiyonu açıklarına karşı korunması önemlidir.
### **Kullanıcı adı ve şifrede OR atlatma (her ikisinde de aynı değer)**
Bir XPath enjeksiyon saldırısı sırasında, hedeflenen web uygulamasının kullanıcı adı ve şifre alanlarında aynı değeri kullanarak OR operatörünü atlayabilirsiniz. Bu, kullanıcı adı ve şifre alanlarının aynı değeri kontrol etmek için kullanıldığı durumlarda etkili olabilir.
Bu ifade, kullanıcı adı ve şifre alanlarında herhangi bir değer girilmediğinde veya doğrulama işlemi sırasında herhangi bir hata oluştuğunda geçerli bir kullanıcı oturumu açmanıza olanak tanır. Bu, kullanıcı adı ve şifre alanlarının aynı değeri kontrol etmek için kullanıldığı durumlarda kullanışlı olabilir.
Örneğin, aşağıdaki XPath ifadesiyle birlikte bir giriş yapmayı deneyebilirsiniz:
```plaintext
//input[@name='username' and @value='admin' or '1'='1']
```
Bu, kullanıcı adı alanında "admin" değerini kontrol ederken şifre alanında herhangi bir değer girilmediğinde veya hata oluştuğunda geçerli bir oturum açmanıza olanak tanır.
Bu saldırıyı gerçekleştirirken, hedeflenen web uygulamasının güvenlik önlemlerini aşmak için dikkatli olmanız önemlidir. Ayrıca, bu saldırının yasal izinler çerçevesinde gerçekleştirildiğinden emin olun.
Null enjeksiyonu, XPath ifadelerinde kullanılan bir tekniktir. XPath ifadeleri, XML belgelerindeki verilere erişmek için kullanılır. Null enjeksiyonu, XPath ifadelerindeki hatalı bir şekilde işlenen null değerlerini kullanarak hedef sistemdeki verilere erişmeyi amaçlar.
Null enjeksiyonunu kullanarak, hedef sistemin XPath ifadelerini manipüle edebilir ve istenilen verilere erişebilirsiniz. Bu saldırı tekniği, hedef sistemin güvenlik açıklarını ortaya çıkarabilir ve hassas bilgilere erişim sağlayabilir.
Null enjeksiyonunu gerçekleştirmek için, hedef sistemin XPath ifadelerini analiz etmek ve null değerlerin nasıl işlendiğini anlamak önemlidir. Null değerlerin hedef sistemin XPath ifadelerinde nasıl işlendiğini belirledikten sonra, manipülasyon yapabilir ve hedef sisteme erişim sağlayabilirsiniz.
Null enjeksiyonu, hedef sistemin güvenlik açıklarını tespit etmek ve verilere erişmek için etkili bir tekniktir. Ancak, bu saldırı tekniğini kullanırken dikkatli olmalı ve yasal izinler çerçevesinde hareket etmelisiniz.
Bu sorgu, `admin` kullanıcı adı ve `pass` şifresiyle eşleşen kullanıcının değerinin uzunluğunu kontrol eder. Eğer uzunluk 10 ise, sorgu doğru kabul edilir ve sonuç olarak `1` döndürülür. Aksi takdirde, sorgu yanlış kabul edilir ve sonuç olarak `2` döndürülür.
XPath enjeksiyonu, hedef web uygulamasında XPath ifadelerini manipüle ederek hedefin dosya sistemindeki dosyaları okumak için kullanılan bir saldırı tekniğidir. Bu saldırı tekniği, hedef uygulamanın güvenlik açıklarını sömürerek hassas verilere erişim sağlayabilir.
XPath ifadeleri, XML belgelerinde belirli düğümleri seçmek için kullanılan bir dil olan XPath ile oluşturulur. Bu ifadeler, web uygulamalarında genellikle veritabanı sorgularını oluşturmak için kullanılır. XPath enjeksiyonu saldırısı, hedef uygulamanın XPath ifadelerini güvenli bir şekilde işletememesinden kaynaklanır.
XPath enjeksiyonu saldırısı gerçekleştirmek için, saldırgan hedef uygulamaya zararlı XPath ifadeleri gönderir. Bu ifadeler, hedef uygulamanın XPath işleme motoru tarafından doğru bir şekilde yorumlanmadığında, hedefin dosya sistemindeki dosyaların içeriğini ifşa edebilir.
XPath enjeksiyonu saldırısını gerçekleştirmek için aşağıdaki adımları izleyebilirsiniz:
XPath enjeksiyonu saldırısını gerçekleştirirken, hedef uygulamanın güvenlik açıklarını sömürmek için dikkatli olmanız önemlidir. Ayrıca, saldırıyı gerçekleştirirken hedef uygulamanın hizmet kalitesini etkilememeye dikkat etmelisiniz.
Out-of-Band (OOB) exploitation, also known as blind XPath injection, is a technique used to extract data from a vulnerable application by leveraging the application's ability to make external requests. This technique is commonly used when the application does not directly display the extracted data, but instead sends it to an external entity.
Out-of-Band (OOB) sömürüsü, aynı zamanda kör XPath enjeksiyonu olarak da bilinen, hassas bir uygulamadan veri çıkarmak için uygulamanın harici istekler yapabilme yeteneğini kullanma tekniğidir. Bu teknik, uygulama çıkarılan veriyi doğrudan görüntülemediğinde, bunun yerine harici bir varlığa gönderdiğinde yaygın olarak kullanılır.
### OOB Exploitation Techniques
OOB exploitation can be achieved using various techniques, including:
- **DNS Exfiltration**: In this technique, the extracted data is encoded and sent as part of a DNS query to a controlled domain. The attacker can then monitor the DNS server logs to retrieve the exfiltrated data.
- **HTTP Callbacks**: This technique involves encoding the extracted data and sending it as part of an HTTP request to a server controlled by the attacker. The attacker can then capture the incoming requests to retrieve the exfiltrated data.
- **SMTP Requests**: In this technique, the extracted data is encoded and sent as part of an email to an email server controlled by the attacker. The attacker can then monitor the email server logs to retrieve the exfiltrated data.
- **FTP Requests**: This technique involves encoding the extracted data and sending it as part of an FTP request to an FTP server controlled by the attacker. The attacker can then monitor the FTP server logs to retrieve the exfiltrated data.
### OOB Exploitation Tools
There are several tools available for performing OOB exploitation, including:
- **Burp Suite**: Burp Suite is a popular web application testing tool that includes features for OOB exploitation, such as the ability to send OOB requests and monitor the responses.
- **SQLMap**: SQLMap is a powerful tool for automated SQL injection and can also be used for OOB exploitation by leveraging its OOB features.
- **Custom Scripts**: Custom scripts can be developed using programming languages like Python or Ruby to perform OOB exploitation. These scripts can be tailored to the specific requirements of the target application.
### Mitigation Techniques
To mitigate OOB exploitation, it is important to implement proper input validation and sanitization techniques. Additionally, the following measures can be taken:
- **Whitelisting**: Implement a whitelist of allowed characters and validate user input against this whitelist.
- **Parameterized Queries**: Use parameterized queries or prepared statements to prevent SQL injection attacks, which can be used as a stepping stone for OOB exploitation.
- **Input Length Limitations**: Enforce limitations on the length of user input to prevent potential OOB attacks.
- **Regular Expression Filtering**: Apply regular expression filtering to validate user input and block any malicious patterns.
- **Security Testing**: Regularly perform security testing, including penetration testing, to identify and address any vulnerabilities that could be exploited for OOB attacks.
<summary><strong>Sıfırdan kahraman olmak için AWS hacklemeyi öğrenin</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Şirketinizi HackTricks'te **reklamınızı görmek** veya HackTricks'i **PDF olarak indirmek** için [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* Ö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 bizi Twitter'da 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** takip edin.**
* Hacking hilelerinizi göndererek **HackTricks** ve **HackTricks Cloud** github depolarına katkıda bulunun.