Followers

Search

Nhập từ khóa tìm kiếm của bạn và nhấn enter

Liên Hệ

Name

Email *

Message *

Điều khoản & Công nghệ Bạn Cần biết Trước khi Bắt đầu hacking databases

Chào mừng trở lại, học viên hacker của tôi!
Mặc dù có rất nhiều loại hacker khác nhau, nhưng mục tiêu họ chia sẻ là cơ sở dữ liệu . Tôi thường tham khảo cơ sở dữ liệu như Holy Grail của hacker , hoặc giải thưởng cuối cùng cho một hack có hiệu quả.
Đó là vì cơ sở dữ liệu - hầu như theo định nghĩa - là kho lưu trữ của tất cả các sản phẩm mà hacker đang theo đuổi. Những tiện ích này có thể bao gồm dữ liệu thẻ tín dụng , thông tin nhận dạng cá nhân, tên người dùng và mật khẩu và sở hữu trí tuệ. Mỗi mặt hàng này có thể được bán với số tiền đáng kể trên thị trường chợ đen.

Ví dụ: số thẻ tín dụng có thể được bán với giá từ 5 đến 50 đô la tùy thuộc vào chất lượng (thẻ vàng và bạch kim có giá trị nhiều hơn thẻ thông thường) và giới hạn tín dụng của họ. Vì vậy, một hack mà gaps 200.000 thẻ tín dụng số có giá trị từ bất kỳ nơi nào $ 1 đến $ 10 triệu!

Đồng thời, nhà nước hacker được bảo trợ, như Trung Quốc , là sau khi sở hữu trí tuệ. Điều này bao gồm thiết kế, công thức, kỹ thuật và những thứ khác mà họ có thể ăn cắp và mang đến Trung Quốc để sản xuất bởi các công ty Trung Quốc. Điều này xảy ra mỗi ngày và một số coi đó là vụ trộm lớn nhất trong lịch sử của thế giới!







Đây là lần đầu tiên của một loạt Null Byte mới trên cơ sở dữ liệu hacking. Trước khi chúng ta kiểm tra làm thế nào để hack một cơ sở dữ liệu, chúng ta cần phải hiểu những điều cơ bản về cách cơ sở dữ liệu hoạt động, SQL là gì, và những điểm yếu nào được sử dụng chung cho cơ sở dữ liệu.
Vì vậy, hãy bắt đầu để chúng tôi có thể nhanh chóng nhận được một số hacking DB!







Cơ sở dữ liệu là gì?

Cơ sở dữ liệu là một hệ thống phần mềm để lưu trữ và truy xuất thông tin dưới dạng có cấu trúc. Cơ sở dữ liệu ban đầu là các tệp tin bằng phẳng, giống như tệp Excel lớn. Khi cơ sở dữ liệu ngày càng lớn, cơ cấu đơn giản này tỏ ra không hiệu quả.
Kết quả là, một nhà khoa học tại IBM, Tiến sĩ Codd, đã phát triển một cấu trúc được gọi là mô hình cơ sở dữ liệu quan hệ. Đây là mô hình này mà khoảng 97% của tất cả các cơ sở dữ liệu hiện đang sử dụng, và điều này bao gồm tất cả các công ty phần mềm lớn.
Các khái niệm cơ bản của mô hình quan hệ là dữ liệu nên được đặt trong các bảng riêng biệt với các khóa duy nhất liên kết các bảng để tránh sao chép dữ liệu và để dễ dàng thu hồi dữ liệu này.

Cấu trúc cơ sở dữ liệu

Mô hình cơ sở dữ liệu quan hệ này liên kết dữ liệu từ các bảng riêng biệt bằng cách sử dụng một cột được chia sẻ hoặc "khoá". Biểu đồ dưới đây là của một mô hình cơ sở dữ liệu quan hệ đơn giản, nơi tất cả các bảng đều được liên kết bởi cột "ID".

Các nhà cung cấp chính trong thị trường cơ sở dữ liệu

Thị trường cơ sở dữ liệu doanh nghiệp có nhiều nhà cung cấp cung cấp các sản phẩm có thể thực hiện nhiệm vụ tương tự, nhưng theo những cách khác nhau. Những người chơi chính trong thị trường này là:
  • Oracle . Họ là những con khỉ trong thị trường này với gần 50% thị phần. Họ sở hữu nhiều sản phẩm phần mềm cơ sở dữ liệu khác nhau, bao gồm cả tên của họ và MySQL.
  • Microsoft SQL Server . Microsoft đã bước vào thị trường này vào đầu thập niên 90 bằng cách hợp tác với Sybase để phát triển cơ sở dữ liệu cung cấp cho doanh nghiệp. Kết quả là, MS SQL Server và Sybase vẫn có nhiều điểm tương đồng. Ban đầu, Microsoft chỉ là một người chơi trong thị trường doanh nghiệp nhỏ, nhưng đang dần dần chiếm được thị trường doanh nghiệp lớn hơn.
  • MySQL . Đây là một cơ sở dữ liệu mã nguồn mở mà bạn sẽ tìm thấy phía sau rất nhiều trang web, một phần, vì nó là miễn phí.








  • IBM DB2 . IBM là nhà cung cấp cơ sở dữ liệu doanh nghiệp ban đầu và đã có nhiều sự phát triển lớn trong thiết kế cơ sở dữ liệu, nhưng cũng giống như mọi thứ về IBM, nó đã giảm trong những thập kỷ gần đây.
Các nhà cung cấp lớn khác bao gồm Sybase , SAS , PostgreSQL (mã nguồn mở) và nhiều sản phẩm khác. Nói chung, giống như bất kỳ hack, chúng ta cần phải làm tốt recon để xác định phần mềm và phiên bản để thành công như hầu hết các hacks cơ sở dữ liệu là nhà cung cấp cụ thể.

Ngôn ngữ truy vấn có cấu trúc (SQL)

Khi IBM phát triển cơ sở dữ liệu ban đầu, họ cũng phát triển một ngôn ngữ lập trình để quản lý và điều khiển dữ liệu này. Họ đã gọi nó là "Structured Query Language", hoặc như nó thường được biết đến, SQL .
Đây là một ngôn ngữ đơn giản sử dụng các từ tiếng Anh theo cách tương tự mà người nói tiếng Anh sử dụng chúng. Ví dụ...
  • SELECT có nghĩa là "chọn một số dữ liệu từ các cột trong một bảng"
  • FROM có nghĩa là "lấy dữ liệu từ bảng này"
  • WHERE nghĩa là chọn dữ liệu đáp ứng điều kiện này (lastname = 'smith').
Hơn nữa, những từ như UPDATE , INSERT , và DROP có nghĩa là trong SQL chính xác những gì bạn mong đợi họ có ý nghĩa.
SQL không phải là picky về cú pháp, nhưng nó là picky về logic. Mặc dù thực tiễn tốt nhất là TĂNG CÓ tất cả từ khoá (SELECT, FROM, WHERE), nó không bắt buộc. Ngoài ra, không gian trắng được bỏ qua. Tuy nhiên, tất cả trừ Microsoft, yêu cầu một câu lệnh SQL kết thúc bằng dấu chấm phẩy (;). Trên các sản phẩm của Microsoft, nó là tùy chọn.
SQL được tiêu chuẩn hóa bởi ANSI, nhưng chuẩn này chỉ bao gồm khoảng 80% ngôn ngữ hoặc cốt lõi của SQL. Các nhà xuất bản phần mềm được tự do thêm các lệnh bổ sung và các tính năng không phải là một phần của tiêu chuẩn. Điều này đôi khi có thể làm cho nó khó khăn để vận chuyển mã SQL giữa DBMS. Nó cũng làm cho nó quan trọng để làm tốt trinh sát trên cơ sở dữ liệu để biết nhà sản xuất và phiên bản trước khi tấn công như là các cuộc tấn công thường được cụ thể cho nhà sản xuất và phiên bản.
Mỗi DBMS có thể được sử dụng từ một dòng lệnh, nhưng mỗi một có GUI riêng của nó. Gần đây, MySQL phát hành một giao diện mới được gọi là Workbench như được thấy trong phần trước.
Oracle, Microsoft và những người khác có các GUI tương tự cho phép quản trị viên truy cập hệ thống của họ.

Truy vấn SQL cơ bản

Khi chúng ta cần phải trích xuất dữ liệu từ cơ sở dữ liệu, người ta nói rằng chúng ta đang "truy vấn" cơ sở dữ liệu. Vì cơ sở dữ liệu là kho lưu trữ dữ liệu nên khả năng trích xuất hoặc truy vấn dữ liệu là một trong những chức năng quan trọng nhất. Là một hacker, chúng tôi muốn trích xuất dữ liệu, vì vậy truy vấn là rất quan trọng để nhận hàng.
Cấu trúc cơ bản của truy vấn sẽ như sau:
SELECT <columns> 
FROM <table> 
WHERE <điều kiện>
Câu lệnh này nói rằng "đưa cho tôi dữ liệu trong các cột được liệt kê trong câu lệnh SELECT từ bảng từ sau FROM từ khoá nhưng chỉ cho tôi những hàng đáp ứng các điều kiện đến sau từ khóa WHERE".
Vì vậy, nếu chúng tôi muốn có tên, họ, tên người dùng và mật khẩu từ bảng nhân viên cho nhân viên có họ của "Hillyer", chúng tôi có thể xây dựng một tuyên bố như sau:
SELECT first_name, last_name, tên người dùng, mật khẩu 
FROM staff 
WHERE last_name = 'Hillyer ";








Như bạn thấy trong ảnh chụp màn hình ở trên, chúng tôi đã trích xuất hồ sơ của Mike Hillyer từ bảng nhân viên với tên người dùng và mật khẩu của mình (mật khẩu thực sự là một hash của mật khẩu).
SQL Injection





SQL injection là cuộc tấn công cơ sở dữ liệu phổ biến nhất và có thể là nguyên nhân của số tiền thua lỗ lớn nhất từ ​​tội phạm mạng và đe doạ tiên tiến (APT).
Nó về cơ bản liên quan đến việc đặt lệnh SQL trong các hình thức dữ liệu của các trang web kết nối với cơ sở dữ liệu. Các mẫu này sau đó gửi các lệnh SQL này trở lại cơ sở dữ liệu và cơ sở dữ liệu sẽ xác thực người dùng (có, xác thực là một chức năng cơ sở dữ liệu) hoặc từ bỏ dữ liệu đích.
Trong hướng dẫn tương lai, chúng ta sẽ dành khá nhiều thời gian sử dụng các công cụ SQL injection và thực hiện các cuộc tấn công SQL injection.

Các lỗ hổng khác





Bên cạnh việc cho bạn thấy làm thế nào để làm SQL injection, chúng tôi sẽ kiểm tra một số lỗ hổng khác trong cơ sở dữ liệu. Việc này liên quan đến xác thực, sử dụng cơ sở dữ liệu để thỏa hiệp hệ điều hành, và một số khác.
Bây giờ chúng ta đã đề cập đến thuật ngữ cơ bản và công nghệ liên quan đến cơ sở dữ liệu, trong hướng dẫn tương lai tôi sẽ chỉ cho bạn cách hack vào các cơ sở dữ liệu này, vì vậy hãy quay trở lại!





0 nhận xét:

Post a Comment