Hướng dẫn cài đặt bộ commando hacking năm 2024

Còn nếu vẫn không tin và muốn giống vậy thì tôi nghĩ bạn có thể thử qua Bollywood, bạn sẽ được đào tạo bài bản bắt đầu với hack cơ sở dữ liệu của cảnh sát với window media player trên nền nhạc vô cùng kích thích :v

Hollywod cũng là một lựa chọn nếu bạn muốn hack ngân hàng trong 5' trong khi có một khẩu súng dí vào đầu vào một cái máy hút bụi đang chạy dưới háng =]]

Cũng nói thêm là tôi không chuyên về bảo mật, nhưng điều này tôi được học từ một đàn anh trong một buổi chia sẽ, các ý kiến tôi cũng cố gắng hết sức để tra tài liệu và tìm hiểu trước khi chia sẻ nhưng có thể vẫn còn những sai sót. Hơn nữa, đây cũng chỉ là bản sơ lược tôi tổng quát nhanh, thông tin chỉ là tóm lược lại và thiếu sót là điều chắc chắn. Mong ae có gạch đá thì cũng xin nhẹ tay.

Part 1

Vì, dù là cơ bản thì cũng có khá nhiều kĩ thuật hack, nên tôi sẽ chia ra làm vài phần để viết cho bài không quá dài, mỗi phần sẽ có tầm 5-6 cái, ngắn quá thì thêm sau. Và cũng như tôi nói trên, tôi không chuyên về bảo mật, nên việc chọn cái loại hack để giới thiệu trong bài có thể khá là lung tung, nếu có góp ý thì vui lòng bình luận ở dưới, tôi sẽ sửa lại cho phù hợp

SQL Injection

Định nghĩa thì nó là một lỗi bảo mật cho phép kẻ tấn công chèn thêm các mã sql vào câu lệnh truy vấn. Để đơn giản thì tôi sẽ làm một ví dụ đơn giản sau.

Giả dụ bạn có một khung đăng nhập, yêu cầu nhập vào usernamepassword sau đó bạn sẽ truy vấn để đăng nhập giống vậy

SELECT *
  FROM users
 WHERE user = 'username'
   AND pass  = 'password' LIMIT 1

Nhưng nếu bạn bị lỗi này, họ sẽ nhập password thành vậy ' or 1=1-- và câu truy vấn của bạn sẽ bị sửa lại thành

SELECT *
  FROM users
 WHERE email = 'user@email.com'
   AND pass  = '' or 1=1--' LIMIT 1

Và bùm, họ đăng nhập mà chả cần tới password, mọi thông tin người dùng lộ hết luôn, mà rồi vào tay ông nào quá đáng thì chỉ cần sửa thêm chút là bạn bay luôn cả cái table users, hay bị cài mã độc luôn ấy chứ.

Lỗi này giờ cũng ít bị rồi vì là các framework đều đã hỗ trợ truy vấn nên việc chèn code vào gần như là không thể.

Phòng chống

1. Tham số hóa query

Thay vì truyền trực tiếp giá trị vào query như vậy

$email = "user@email.com";
$sql = "SELECT * FROM users WHERE email = '" + email + "'";

Thì bạn nên dùng các method để tham số hóa câu lệnh như

$statement = $dbh->prepare["select * from users where email = ?"];
$statement->execute[array[email]];

2. ORM

Cơ chế hỗ trợ truy vấn thay cho viết SQL thuần như trên, nếu đã dùng laravel thì bạn chả lạ gì mấy cái ->first[] hay ->where[user, 'username'] gì gì kiểu thế nữa nhỉ =]]

3. Escaping/Sanitizing Inputs

Lọc kĩ đầu vào, loại bỏ các kí tự đặc biệt hoặc các thành phần nguy hiểm có thể gây ra, các đơn giản là là whitelist, thay vì chặn từ cái, thì bạn chặn hết rồi tại whitelist chọn nhưng cái cho phép nhập, vậy ngon

Cross-site scripting [XSS]

Cross tiếng anh nghĩa là dấu X, chắc vậy lên Cross Site Scripting không viết là CSS mà viết tắt là XSS =]]]

XSS là việc hacker chèn mã độc để thực hiện thi ở clien, VD đơn giản là một ông gửi

SELECT *
  FROM users
 WHERE email = 'user@email.com'
   AND pass  = '' or 1=1--' LIMIT 1

0 qua kênh chat, ai mở mở kênh chat đó lên thì sẽ bị bật một alert hiện chữ Hello.

Việc này có thể dẫn đến việc bị ăn cắp dư liệu được lưu ở trình duyệt như mật khẩu đã lưu, cookie,... hay bị ép điều hướng tới các trang web đọc hại như x*xx, *video,... hoặc nếu như viblo có lỗi này, tôi có thể viết một đoạn code để khi ai vào đọc bài là auto upvote chẳng hạn, ez keycap =]]

Phòng chống

1. Escape Dynamic Content

Cơ bản thì là encode các kí tự đặc biệt, không cần phải encode toàn bộ nội dung

2. Whitelist Values

Giống như lỗi ở trên thay vì chọn từ cái để cấm, thì bạn cứ cấm hết rồi chọn từng để cho phép, vậy sẽ yên tâm hơn

Command Execution

Lỗi này tương tự với SQL Injection và XSS ở trên, nhưng thay vì tác động tới Database hay clien, nó tác động đến các lệnh excuse trên server, thường là linux

Như các bạn thấy trong ảnh, chỉ là một ví dụ nhỏ, một câu

SELECT *
  FROM users
 WHERE email = 'user@email.com'
   AND pass  = '' or 1=1--' LIMIT 1

1 đơn giản và thế là full clip không che của server.

Phòng chống

Như các bạn có thể thấy trong ảnh, việc thực thi nó cũng tương tự với SQL Injection và XSS, nên việc ngăn chặn cũng gần như tượng tự, bắt đầu với chuẩn hóa input ngoài ra còn cần phân quyền thực thi lệnh đúng để ngăn chặn việc truy xuất dữ liệu từ người không có quyền, về cơ bản thì nó được mấy cái gạch đầu dòng sau:

1. Espace inputs 2. Hạn chế các command được phép 3. Chạy với quyền hạn chế 4. Tránh gọi các lệnh cùng nhau 5. Và nhớ nhờ ae trong team review code kỹ lưỡng

Clickjacking

Cái này thì ae xem phim lậu hay đọc truyện online chắc chắn gặp nhiều, rất nhiều, mà nó còn là do mấy ông dev cố ý cắm vào nữa

Chính là việc ae, click play video nhưng lại bật ra cái quảng cáo, click đóng quảng cáo nhưng lại bật ra quảng cáo, click chả vào cái m* gì cũng bật ra quảng cáo

Việc này có thể làm bằng css, hoặc js đều được cả, còn làm thế nào thì tôi không dạy và bypass thế nào thì tôi cũng không chỉ, cần câu cơm của ae cả thôi.

Nhưng đây chỉ là một "ứng dụng" nhỏ của nó, nếu vào tay hacker, tricker, họ có thể bắt bạn download nhưng tập tin malware, điều hướng bạn đến những trang đọc hại hoặc kết hợp với XSS, làm bạn vô tình gửi cho họ nhưng thông tin cá nhận mà bạn không hề hay biết

Phòng chống

1. X-Frame-Options

Biểu thị cho phép trình duyệt render thẻ như

SELECT *
  FROM users
 WHERE email = 'user@email.com'
   AND pass  = '' or 1=1--' LIMIT 1

2,

SELECT *
  FROM users
 WHERE email = 'user@email.com'
   AND pass  = '' or 1=1--' LIMIT 1

3,

SELECT *
  FROM users
 WHERE email = 'user@email.com'
   AND pass  = '' or 1=1--' LIMIT 1

4

2. Content Security Policy

Là một phần của HTML5, bảo vệ rộng hơn X Frame, nhưng thế nào thì tôi không biết

3. Frame-Killing

Chèn đoạn code này vào trang, nó sẽ kiểm tra domain trang gốc có giống với domain của trình duyệt hay không, nếu đúng thì được phép hiển thị.


  /* Hide page by default */
  html { display : none; }


  if [self == top] {
    // Everything checks out, show the page.
    document.documentElement.style.display = 'block';
  } else {
    // Break out of the frame.
    top.location = self.location;
  }

Cross-site Request Forgery

Là kỹ thuật tấn công bằng cách sử dụng quyền chứng thực của người dùng đối với một website. Ví dụ về kịch bản tấn công nó sẽ thế này:

Chủ Đề