AWS Hacking'i öğrenin ve pratik yapın:<imgsrc="/.gitbook/assets/arte.png"alt=""data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<imgsrc="/.gitbook/assets/arte.png"alt=""data-size="line">\
GCP Hacking'i öğrenin ve pratik yapın: <imgsrc="/.gitbook/assets/grte.png"alt=""data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<imgsrc="/.gitbook/assets/grte.png"alt=""data-size="line">](https://training.hacktricks.xyz/courses/grte)
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
**`LIMIT`** operatörü **uygulanmamıştır**. Ancak, SELECT sorgu sonuçlarını**ilk N tablo satırı ile sınırlamak mümkündür, `TOP` operatörünü kullanarak**. `TOP`, döndürülecek satır sayısını temsil eden bir tam sayı argümanı alır.
Bir SQLi'de genellikle başka tablolardan bilgi çıkarmak için yeni bir sorgu çalıştırmak istersiniz. MS Access her zaman **alt sorgularda veya ek sorgularda bir `FROM` belirtilmesini gerektirir**.\
Bu nedenle, bir `UNION SELECT` veya `UNION ALL SELECT` veya bir koşul içinde parantez içindeki bir `SELECT` çalıştırmak istiyorsanız, her zaman **geçerli bir tablo adı ile bir `FROM` belirtmeniz gerekir**.\
Bu nedenle, **geçerli bir tablo adını** bilmeniz gerekir.
**MS Access**, **`'1'=2='3'='asd'=false`** gibi **garip sözdizimlerine** izin verir. Genellikle SQL enjeksiyonu bir **`WHERE`** ifadesinin içinde olacaktır, bunu kötüye kullanabiliriz.
Bir MS Access veritabanında bir SQLi'ye sahip olduğunuzu ve bir **sütun adının username** olduğunu bildiğinizi (veya tahmin ettiğinizi) hayal edin ve dışa aktarmak istediğiniz alan bu. Chaining equals tekniği kullanıldığında web uygulamasının farklı yanıtlarını kontrol edebilir ve **Mid** fonksiyonunu kullanarak alt dizeleri almak için **boolean injection** ile içerik dışa aktarabilirsiniz.
Eğer **tablonun adını** ve **dökülecek sütunu** biliyorsanız, `Mid`, `LAST` ve `TOP` kombinasyonunu kullanarak **tüm bilgileri sızdırmak** için boolean SQLi kullanabilirsiniz:
* [http://nibblesec.org/files/MSAccessSQLi/MSAccessSQLi.html](http://nibblesec.org/files/MSAccessSQLi/MSAccessSQLi.html) adresinde başka bir liste var.
Zaten [**eşit zincirleme tekniği**](ms-access-sql-injection.md#chaining-equals-+-substring) **ile mevcut ve diğer tablolardan veri dökme** konusunu tartıştık. Ancak başka yollar da var:
Kısacası, sorgu bir “if-then” ifadesi kullanarak başarı durumunda “200 OK” veya aksi takdirde “500 Internal Error” tetikler. TOP 10 operatöründen faydalanarak, ilk on sonucu seçmek mümkündür. Ardından LAST kullanımı, yalnızca 10. tuple'ı dikkate almayı sağlar. Bu değerde, MID operatörünü kullanarak basit bir karakter karşılaştırması yapmak mümkündür. MID ve TOP'un indeksini uygun şekilde değiştirerek, tüm satırlar için “username” alanının içeriğini dökebiliriz.
[https://docs.microsoft.com/en-us/previous-versions/tn-archive/cc512676(v=technet.10)?redirectedfrom=MSDN](https://docs.microsoft.com/en-us/previous-versions/tn-archive/cc512676\(v=technet.10\)?redirectedfrom=MSDN) adresini kontrol edin.
**Web kök mutlak yolunun bilgisi, daha fazla saldırıyı kolaylaştırabilir**. Uygulama hataları tamamen gizlenmemişse, dizin yolu, var olmayan bir veritabanından veri seçmeye çalışarak ortaya çıkarılabilir.
Aşağıdaki saldırı vektörü, **uzaktaki dosya sisteminde bir dosyanın varlığını çıkarım yapmak için** kullanılabilir. Belirtilen dosya mevcutsa, MS Access, veritabanı formatının geçersiz olduğunu bildiren bir hata mesajı tetikler:
Dosyaları saymanın bir diğer yolu, **bir veritabanı.tablosu öğesini belirtmektir**. **Eğer** belirtilen **dosya mevcutsa**, MS Access, **veritabanı format hatası mesajı** gösterir.
Burada **name\[i] bir .mdb dosya adıdır** ve **realTable, veritabanı içinde mevcut bir tablodur**. MS Access her zaman bir hata mesajı tetikleyecek olsa da, geçersiz bir dosya adı ile geçerli bir .mdb dosya adını ayırt etmek mümkündür.
[**Access PassView**](https://www.nirsoft.net/utils/accesspv.html), Microsoft Access 95/97/2000/XP veya Jet Database Engine 3.0/4.0 ana veritabanı şifresini kurtarmak için kullanılabilecek ücretsiz bir araçtır.
Learn & practice AWS Hacking:<imgsrc="/.gitbook/assets/arte.png"alt=""data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<imgsrc="/.gitbook/assets/arte.png"alt=""data-size="line">\
Learn & practice GCP Hacking: <imgsrc="/.gitbook/assets/grte.png"alt=""data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<imgsrc="/.gitbook/assets/grte.png"alt=""data-size="line">](https://training.hacktricks.xyz/courses/grte)
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.