sqli-labs: Các bài labs tuyệt vời để tìm hiểu lỗ hổng SQLi

Thảo luận trong 'Web Security' bắt đầu bởi DDos, 09/08/18, 09:08 PM.

  1. DDos

    DDos Super Moderator Thành viên BQT

    Tham gia: 22/10/13, 08:10 PM
    Bài viết: 1,531
    Đã được thích: 281
    Điểm thành tích:
    83
    SQL injection là một kỹ thuật cho phép những kẻ tấn công lợi dụng lỗ hổng của việc kiểm tra dữ liệu đầu vào trong các ứng dụng web và các thông báo lỗi của hệ quản trị cơ sở dữ liệu trả về để inject (tiêm vào) và thi hành các câu lệnh SQL bất hợp pháp. SQL injection có thể cho phép những kẻ tấn công thực hiện các thao tác, delete, insert, update, v.v. trên cơ sở dữ liệu của ứng dụng, thậm chí là server mà ứng dụng đó đang chạy.

    Mặc dù, đã trải qua rất nhiều năm kể từ khi lỗ hổng SQLi đầu tiên được phát hiện, SQLi vẫn là lỗ hổng rất phổ biến trong ứng dụng web. Trên Whitehat cũng có một seri hướng dẫn về lỗ hổng này, các bạn có thể tham khảo tại đây.

    Nhằm mục đích trau dồi kỹ năng phát hiện lỗ hổng SQLi, mình muốn giới thiệu tới các bạn sqli-labs project. Project này bao gồm 65 bài lab khác nhau với độ khó tăng dần. Nội dung của sqli-labs bao gồm gần như tất cả các con đường có thể dẫn tới lỗi SQLi như: GET/POST request, User-Agent, ... Mình tin chắc rằng nếu bạn có thể vượt qua được 65 bài lab này, bạn có thể dễ dàng tìm kiếm lỗ hổng sqli trên các website.

    Để cài đặt sqli-lab, các bạn cần:
    • PHP
    • MySQL
    • Apache server
    Bước 1: Tải sqli-labs tại đây.
    Bước 2: Giải nén file vừa tải vào đường dẫn /var/www/html
    Bước 3: Mở file db-creds.inc trong thư mục sql-connections vào thay đổi MYSQL database username và password
    Bước 4: Khởi chạy Apache server và dùng trình duyệt truy cập đường dẫn: http://localhost/sqli-labs
    Bước 5: Click vào đường dẫn setup/resetDB

    sqli-labs.png
     
    Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
    Baby_parrot and sunny like this.
  2. nguyễn lê tuấn

    nguyễn lê tuấn New Member

    Tham gia: 11/08/18, 08:08 AM
    Bài viết: 4
    Đã được thích: 0
    Điểm thành tích:
    1
    Các bạn ơi mình không hiểu lắm phần thay đổi thông tin trong file database, các bạn có thể chỉ mình được không. mình tạo một database trong phpmyadmin rồi đổi dbname trong file db-creds.inc còn uername vs passsuername mình để là: root và không có pass nhưng vẫn k được, hướng dẫn mình chưa hiểu lắm, mong các bạn chỉ rõ hơn, cám ơn các bạn
     
    Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
  3. DDos

    DDos Super Moderator Thành viên BQT

    Tham gia: 22/10/13, 08:10 PM
    Bài viết: 1,531
    Đã được thích: 281
    Điểm thành tích:
    83
    Khi bạn cài đặt mysql, sẽ có phần thiết lập mật khẩu cho user mặc định là root.
    MySQLPasswordLinux.png
    Thì bạn sẽ điền trong mục user và pass trong file db-creds.inc là mật khẩu lúc bạn cài đặt mysql.
     
    Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
    nguyễn lê tuấn and sunny like this.
  4. nguyễn lê tuấn

    nguyễn lê tuấn New Member

    Tham gia: 11/08/18, 08:08 AM
    Bài viết: 4
    Đã được thích: 0
    Điểm thành tích:
    1
    Mình làm như vầy thì nó báo lỗi như sau:
    upload_2018-8-13_17-42-31.png

    tài khoản user - pass phpmyadmin của mình là mặc định.

    upload_2018-8-13_17-44-35.png

    upload_2018-8-13_17-43-9.png
     
    Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
  5. DDos

    DDos Super Moderator Thành viên BQT

    Tham gia: 22/10/13, 08:10 PM
    Bài viết: 1,531
    Đã được thích: 281
    Điểm thành tích:
    83
    Có lẽ là do sqli-labs chưa hỗ trợ php7. Bạn thử cài php5.6 xem.
     
    Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
  6. nguyễn lê tuấn

    nguyễn lê tuấn New Member

    Tham gia: 11/08/18, 08:08 AM
    Bài viết: 4
    Đã được thích: 0
    Điểm thành tích:
    1
    Chỉnh lại php 5.6 thì vào được phần setup database nhưng sau khi tự động kiểm tra và tạo database tên security
    (mình đã chỉnh lại file db-creds.inc như sau:)

    upload_2018-8-14_21-52-5.png

    Thì nó lại thông báo lỗi như vầy, không biết do lỗi ở đâu, bạn có thể chỉ mình được không
    (chỉnh lại thông tin host thành $host = 'localhost'; vẫn bị như hình)
    upload_2018-8-14_21-53-5.png
     
    Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
  7. sunny

    sunny Điều hành viên Thành viên BQT

    Tham gia: 30/06/14, 10:06 PM
    Bài viết: 1,843
    Đã được thích: 826
    Điểm thành tích:
    113
    Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
  8. DDos

    DDos Super Moderator Thành viên BQT

    Tham gia: 22/10/13, 08:10 PM
    Bài viết: 1,531
    Đã được thích: 281
    Điểm thành tích:
    83
    @nguyễn lê tuấn bạn cho mình hỏi server bạn đang dùng là gì vậy? LAMP hay ....

    Để đơn giản hơn bạn có thể dùng docker với lệnh dưới đây:
    docker pull tuxotron/audi_sqli
     
    Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
  9. nguyễn lê tuấn

    nguyễn lê tuấn New Member

    Tham gia: 11/08/18, 08:08 AM
    Bài viết: 4
    Đã được thích: 0
    Điểm thành tích:
    1
    Mình dùng Openserver để làm server

    upload_2018-8-19_10-13-16.png
     
    Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan