Người hướng dẫn: Trong bài giảng này và
một vài bài giảng tiếp theo, chúng ta sẽ
nói về một loại lỗ hổng phổ biến, được gọi là SQL Injjection.
Trước khi chúng ta bắt đầu nói về cách điều này xảy ra và cách
khai thác nó, trước tiên chúng ta hãy tìm hiểu SQL là gì.
Bây giờ, nếu bạn đang thử bút trên một trang web nhất
định, rất có thể trang web này lớn hơn một chút so với các trang
web nhỏ hơn, vì vậy có thể nó đang sử dụng cơ sở dữ liệu.
Hầu hết các trang web, trừ các trang web
rất đơn giản, sử dụng cơ sở dữ liệu, cơ sở dữ liệu được sử dụng để lưu trữ dữ liệu, vì
vậy chúng lưu trữ tên người dùng, mật khẩu, bài báo, bài
đăng trên blog, hình ảnh.
Bất cứ điều gì xảy ra trên trang web, theo nghĩa đen,
được lưu trữ trên cơ sở dữ liệu và ứng dụng web truy vấn cơ sở dữ liệu
và sau đó hiển thị dữ liệu cho bạn hoặc cho người dùng,
trên màn hình.
Khi người dùng làm điều gì đó, nó sẽ cập nhật,
xóa hoặc sửa đổi dữ liệu tồn tại trong cơ sở dữ liệu.
Sự tương tác này, giữa ứng dụng
web và cơ sở dữ liệu, xảy ra bằng cách sử dụng một ngôn ngữ gọi là SQL.
Vì vậy, hãy để tôi cho bạn thấy ý của tôi về cơ sở dữ liệu,
đây chỉ là một ví dụ, tôi không
hack bất cứ thứ gì, tôi
thực sự chỉ đăng nhập vào cơ sở dữ liệu được cài đặt
trên máy Metasploitable của chúng tôi, và sau đó chúng tôi
chỉ cần xem những gì đã được cài đặt trên đó.
Vì vậy, tôi không thực hiện bất kỳ vụ hack nào, không có gì ở đây,
không có gì lạ mắt, chỉ cần đăng nhập vào SQL của tôi.
Và sau đó tôi đặt tên người dùng là
root và Metasploitable không sử dụng mật khẩu cho root, điều
này thực sự tồi tệ, nhưng rõ ràng đó là một hệ thống dễ bị tấn công.
Vì vậy, tôi sẽ đăng nhập và tôi không hack bất cứ thứ
gì, tôi không thực hiện bất
kỳ thao tác chèn SQL nào, đây chỉ là thiết
bị đầu cuối cho MySQL, ứng dụng web sẽ sử dụng để tương tác
với cơ sở dữ liệu.
Vì vậy, tôi chỉ đang cố gắng cho bạn thấy ý của tôi về
cơ sở dữ liệu và những gì được lưu trong đó.
Vì vậy, điều đầu tiên tôi sẽ
làm là, tôi sẽ nhập các cơ sở dữ liệu chương trình.
Và điều đó sẽ hiển thị cho chúng tôi cơ sở dữ liệu
tồn tại trên máy chủ mục tiêu của chúng tôi và bạn có thể thấy
rằng chúng tôi có lược đồ thông tin, đây là cơ sở dữ liệu
mặc định chứa thông tin mặc định, thông tin
về tất cả các cơ sở dữ liệu khác.
Vì vậy, cái này được cài đặt theo mặc định, khi
bạn cài đặt MySQL.
Phần còn lại đã được cài đặt cho mỗi ứng dụng web.
Vì vậy, chúng ta có thể thấy, chúng tôi có một cho tikiwiki,
chúng tôi có một cho owas10, và đó là cho Mutilllidae này.
Chúng tôi cũng có một cái gọi là mysql, chúng
tôi có một cái gọi là metasploit
và một cái cho dvwa, ứng dụng web mà chúng tôi
đang sử dụng.
Vì vậy, bạn có thể thấy, đối
với mỗi ứng dụng web, chúng ta thực sự có một
cơ sở dữ liệu và cơ sở dữ liệu này chứa thông tin
được sử dụng bởi ứng dụng web đó.
Hãy để tôi chỉ cho bạn những
gì trong đó, vì vậy tôi sẽ sử dụng cơ sở dữ liệu owas10.
Vì vậy, đây là một lần nữa, đây là một cho Mutilldae,
cho ứng dụng web này.
Và chúng ta có thể thấy bảng, vì vậy mỗi cơ sở dữ liệu
có một bảng, các bảng và trong các bảng có thông tin.
Vì vậy, tôi sẽ nói, "hiển thị bảng" để xem các bảng mà chúng
tôi có.
Và bạn có thể thấy, chúng tôi có một
bảng cho các tài khoản, vì vậy bạn có thể cho rằng bảng này có thông
tin về tên người dùng, mật khẩu và thông tin về người dùng.
Chúng tôi có một bảng cho các blog, vì vậy có thể có các đầu vào blog,
các bài đăng và nhận xét trong đó.
Bạn có thể xem dữ liệu đã thu thập, thẻ tín dụng,
vì vậy có một bảng chứa thẻ tín dụng.
Bây giờ, điều này là rất lớn đối với các
trang web mua sắm, họ thực sự sẽ có bảng thẻ
tín dụng và thông tin về thẻ tín
dụng sẽ được lưu trữ ở đó.
Về cơ bản, cơ sở dữ liệu sẽ lưu trữ mọi thứ,
tất cả dữ liệu được sử dụng trên trang web.
Vì chúng không được lưu trữ trên các tệp, nó không hiệu quả.
Vì vậy, hãy xem xét các tài khoản và nếu tôi chỉ
nói, "chọn" thì đây chính xác là cách ứng dụng web sẽ truy
xuất thông tin từ cơ sở dữ liệu, nó sẽ chọn nội
dung, cập nhật hoặc xóa.
Vì vậy, tôi đang thực hiện một tuyên bố chọn ở đây, một lần nữa,
đây không phải là hack, tôi không làm gì
cả, chỉ là chọn nội dung.
Và tôi sẽ chọn dấu sao, có nghĩa là
mọi thứ, từ các tài khoản.
Apostrophe, và như chúng ta có thể thấy, chúng ta có id tài khoản,
tên người dùng, mật khẩu
và sau đó là chữ ký của người đó và
nếu người đó là quản trị viên.
Bây giờ các cột này phụ thuộc
vào bảng, vì vậy thực sự là người
thiết kế cơ sở dữ liệu, thiết kế bảng, cột và sau đó dữ liệu
được ứng dụng web chèn vào.
Vì vậy, bạn có thể thấy rằng chúng tôi có một người
dùng được gọi là admin và mật khẩu của họ là adminpass.
Có thể thấy chúng tôi có một người dùng tên là adrian
và mật khẩu của họ là một mật khẩu nào đó.
Vì vậy, đây chỉ là để cho bạn thấy cơ sở dữ liệu trông như thế nào và chỉ để cảm nhận về nó,
bởi vì, trong các video trong tương lai, chúng
tôi sẽ cố gắng khai thác các cơ sở dữ liệu này và có
quyền truy cập tương tự như thế này.
Vì vậy, đây là bây giờ tôi chỉ đăng nhập bằng
tên người dùng và mật khẩu,
thông thường bạn sẽ không có quyền truy cập như thế này,
chỉ quản trị viên web mới có quyền truy cập đó.
Trong các video tương lai, chúng tôi sẽ cố gắng thực hiện một số cuộc tấn công để có được quyền
truy cập tương tự như thế này, để chúng tôi có toàn
quyền kiểm soát cơ sở dữ liệu, để chúng tôi có thể
đọc nội dung và xem liệu chúng tôi có thể viết hoặc
sửa đổi mọi thứ hay không .