Các cách tấn công website hiện nay
Hiện nay, có nhiều phương pháp và kỹ thuật tấn công được các hacker sử dụng để nhắm vào các ứng dụng và trang web. Mục tiêu chung của việc bảo mật ứng dụng web là làm cho chúng khó bị tấn công hơn, tăng khả năng chống lại các cuộc tấn công và mở rộng thời gian cho nhân viên an ninh ứng phó.
Dưới đây là các cách tấn công website phổ biến hiện nay, được tổng hợp từ các nguồn bạn cung cấp:
1. Tấn công Injection (Chèn mã)#
Các cuộc tấn công Injection xảy ra khi dữ liệu không đáng tin cậy được gửi đến một trình thông dịch (interpreter) như một phần của lệnh hoặc truy vấn, cho phép kẻ tấn công thực hiện các lệnh không mong muốn hoặc truy cập dữ liệu trái phép.
SQL Injection (SQLi): Đây là một trong những lỗ hổng phổ biến nhất, xảy ra khi nhà phát triển không lọc đầu vào của người dùng, cho phép kẻ tấn công chèn mã SQL độc hại vào các truy vấn cơ sở dữ liệu. Kẻ tấn công có thể thay đổi truy vấn để lấy toàn bộ thông tin người dùng trong cơ sở dữ liệu. Các điểm chèn phổ biến: Trong mệnh đề
WHEREcủa truy vấn, với các trườngid,username,passwordhoặc các giá trị khác.Khai thác dữ liệu (Data Exfiltration): Hiển thị một dòng: Sử dụng
UNIONđể lấy dữ liệu nếu ứng dụng chỉ trả về một dòng.Chỉ hiển thị lỗi: Ép cơ sở dữ liệu trả về thông báo lỗi có chứa dữ liệu bị đánh cắp.
Blind SQL Injection: Không có dữ liệu trực tiếp được trả về, kẻ tấn công xác định kết quả thông qua các điều kiện đúng/sai (Boolean-based) hoặc thời gian phản hồi (Timing/delay).
Side Channel: Có thể sử dụng các hoạt động của hệ điều hành như
ping,NetcathoặcFTPđể truyền dữ liệu về phía kẻ tấn công.
Công cụ: sqlmap là một công cụ mã nguồn mở Python rất mạnh mẽ để kiểm tra và khai thác SQL Injection, hỗ trợ nhiều hệ quản trị cơ sở dữ liệu (MySQL, PostgreSQL, MSSQL Server, Oracle, v.v.) và các kiểu injection khác nhau.
HTML Injection: Xảy ra khi một trang web chấp nhận đầu vào của người dùng mà không được xác thực, cho phép kẻ tấn công chèn các thẻ HTML tùy ý vào trang. Điều này có thể được sử dụng để đánh lừa người dùng, tạo các cuộc tấn công lừa đảo (phishing) hoặc giả mạo nội dung.
CRLF Injection: Kẻ tấn công chèn các ký tự xuống dòng (
CRLF) vào đầu vào của người dùng, có thể dẫn đến HTTP Response Splitting và các cuộc tấn công khác.XML External Entities (XXE) Vulnerability: Xảy ra khi bộ xử lý XML cũ hoặc cấu hình sai đánh giá các tham chiếu thực thể trong tài liệu XML, có thể dẫn đến lộ thông tin tệp nội bộ, quét cổng nội bộ, thực thi mã từ xa (RCE) hoặc tấn công từ chối dịch vụ (DoS).
OS Command Injection: Kẻ tấn công chèn các lệnh hệ điều hành vào đầu vào của ứng dụng, sau đó được thực thi trên máy chủ.
HTTP Parameter Pollution (HPP): Xảy ra khi một trang web chấp nhận đầu vào từ người dùng và sử dụng nó để tạo một yêu cầu HTTP đến một hệ thống khác mà không xác thực đầu vào đó. Điều này có thể xảy ra ở phía máy chủ (backend) hoặc phía máy khách (client-side).
Template Injection: Cho phép kẻ tấn công chèn mã độc vào các mẫu (templates) của ứng dụng, dẫn đến thực thi mã tùy ý.
Insecure Deserialization: Thường dẫn đến thực thi mã từ xa (RCE). Ngay cả khi không RCE, nó có thể gây ra các cuộc tấn công như replay attacks, injection attacks và leo thang đặc quyền.
2. Cross-Site Scripting (XSS)#
XSS xảy ra khi ứng dụng web bao gồm dữ liệu không đáng tin cậy trong một trang web mới mà không kiểm tra hoặc thoát (escaping) dữ liệu đầu vào của người dùng một cách thích hợp.
Reflected XSS: Xảy ra khi đầu vào XSS được phản ánh trực tiếp trở lại trình duyệt của nạn nhân trong phản hồi của máy chủ. Kẻ tấn công cần dụ dỗ nạn nhân nhấp vào một liên kết độc hại.
Stored (Persistent) XSS: Đầu vào XSS được gửi đến máy chủ, lưu trữ lại như một nội dung bình thường, và sau đó được truy cập bởi trình duyệt của nạn nhân. Thường thấy ở các diễn đàn web, thông tin người dùng, hoặc các khu vực cho phép người dùng đăng bài. Kẻ tấn công có thể đánh cắp cookie của quản trị viên hoặc thực hiện lừa đảo.
DOM-based XSS: Một dạng của Reflected XSS, nhưng máy chủ không phản ánh cuộc tấn công; thay vào đó, cuộc tấn công được phản ánh thông qua DOM (Document Object Model) trên phía trình duyệt. Mã trên trình duyệt lấy đầu vào từ URL, biểu mẫu hoặc các vị trí khác và hiển thị/thực thi nó.
Tác động của XSS: Tạo cửa sổ pop-up, đánh cắp cookie từ trình duyệt nạn nhân, tấn công cơ sở hạ tầng ở phía nạn nhân, thực hiện quét máy chủ nội bộ hoặc khai thác lỗ hổng nội bộ.
Công cụ: BeEF (Browser Exploitation Framework) là một công cụ mạnh mẽ tương tác và kiểm soát trình duyệt thông qua XSS hook, bao gồm nhiều module như quét cổng, lấy lịch sử truy cập, khám phá phần mềm nạn nhân, thay đổi hiển thị trang, và triển khai các tấn công Metasploit.
3. Tấn công liên quan đến Xác thực (Authentication) và Quản lý phiên (Session Management)#
Các chức năng liên quan đến xác thực và quản lý phiên được xây dựng không đúng cách có thể cho phép kẻ tấn công lấy mật khẩu, khóa hoặc session token, hoặc giả mạo danh tính người dùng tạm thời hoặc vĩnh viễn.
Lộ thông tin xác thực: HTTP Basic Authentication: Thông tin đăng nhập được gửi dưới dạng base64 (không mã hóa), dễ bị đánh hơi và phát lại. Không có cơ chế khóa tài khoản hoặc giới hạn số lần thử.
- HTTP Digest Authentication: Dù sử dụng MD5 hashes và nonce, vẫn có thể bị tấn công Man-in-the-Middle (MITM).
Liệt kê người dùng (User Enumeration): Kẻ tấn công xác định các điểm xác thực (biểu mẫu đăng nhập, trường ẩn, cookie) và thử các tên người dùng hợp lệ và không hợp lệ để quan sát phản hồi của ứng dụng (thông báo lỗi, trạng thái HTTP, chuyển hướng) nhằm nhận diện tên người dùng tồn tại.
Đoán mật khẩu (Password Guessing): Thử thủ công hoặc tự động các mật khẩu không đúng với tên người dùng hợp lệ để kiểm tra cơ chế khóa tài khoản. Nếu không có cơ chế khóa, kẻ tấn công có thể thực hiện tấn công vét cạn (brute-force). Công cụ Hashcat được sử dụng để bẻ khóa mật khẩu.
Khôi phục mật khẩu không an toàn: Kẻ tấn công có thể lợi dụng các chức năng khôi phục mật khẩu (câu hỏi bảo mật, gợi ý mật khẩu, liên kết đặt lại mật khẩu gửi qua email) nếu chúng có thể dự đoán được hoặc có lỗ hổng.
Lưu mật khẩu không an toàn: Nếu ứng dụng lưu mật khẩu dưới dạng hash mà không được salt, chúng có thể bị tấn công bằng bảng cầu vồng (rainbow tables).
Session Fixation: Ứng dụng không cấp phát một token mới sau khi đăng nhập thành công, cho phép người dùng chưa xác thực sử dụng token cũ để duy trì phiên làm việc.
4. Cross-Site Request Forgery (CSRF / XSRF)#
CSRF cho phép kẻ tấn công thực hiện các hành động không mong muốn trên một ứng dụng web mà người dùng đã đăng nhập. Kẻ tấn công có thể đoán được các tham số và trình duyệt của nạn nhân sẽ tự động thêm Session IDs.
Khai thác: Kẻ tấn công tạo một trang HTML độc hại có chứa yêu cầu HTTP mong muốn (sử dụng thẻ
<img>cho GET requests hoặc các trường ẩn và JavaScript để tự động gửi biểu mẫu cho POST requests).Bỏ qua cơ chế chống CSRF (Anti-XSRF): Kẻ tấn công có thể kết hợp XSS với CSRF. Nếu có lỗ hổng XSS, kẻ tấn công có thể chèn mã JavaScript đọc token chống CSRF từ trang web và sau đó gửi nó cùng với yêu cầu độc hại, từ đó bỏ qua cơ chế bảo vệ.
5. Tấn công kiểm soát truy cập (Access Control)#
Xảy ra khi các hạn chế không đúng cách được áp dụng cho những gì người dùng đã xác thực được phép làm. Điều này có thể dẫn đến kẻ tấn công truy cập các chức năng không được phép, xem các tệp nhạy cảm, thay đổi quyền truy cập của người dùng hoặc leo thang đặc quyền.
Leo thang đặc quyền (Privilege Escalation): Kẻ tấn công sử dụng các tài khoản có quyền thấp hơn để truy cập các chức năng hoặc dữ liệu yêu cầu quyền cao hơn (chiều dọc) hoặc truy cập dữ liệu của người dùng ngang hàng (chiều ngang) bằng cách thay đổi các định danh tài nguyên (ví dụ: document ID).
Kiểm soát truy cập dựa trên tham số không an toàn: Ứng dụng dựa vào các tham số trong yêu cầu (ví dụ:
edit=falsehoặcaccess=read) để kiểm soát truy cập, nhưng kẻ tấn công có thể thay đổi các giá trị này.Kiểm soát truy cập dựa trên HTTP Referer không an toàn: Ứng dụng kiểm soát truy cập dựa trên trường
HTTP Referer, nhưng kẻ tấn công có thể giả mạo hoặc loại bỏ trường này.
6. Lỗ hổng cấu hình bảo mật (Security Misconfiguration)#
Đây là một vấn đề phổ biến, thường là kết quả của việc giữ nguyên cấu hình mặc định không an toàn, lưu trữ đám mây mở, hoặc xử lý các thông báo lỗi có chứa thông tin nhạy cảm. Nó cũng bao gồm việc thiếu cập nhật các bản vá và nâng cấp hệ điều hành, framework và thư viện.
7. Sử dụng các thành phần có lỗ hổng đã biết (Using Components with Known Vulnerabilities)#
Các thành phần như thư viện, framework hoặc module phần mềm chạy với cùng quyền với ứng dụng. Việc sử dụng các thành phần có lỗ hổng đã biết có thể làm suy yếu khả năng bảo vệ ứng dụng và cho phép các cuộc tấn công khác nhau.
8. Thực thi mã từ xa (Remote Code Execution - RCE)#
Cho phép kẻ tấn công thực thi mã tùy ý trên máy chủ web. Các lỗ hổng như XXE và Insecure Deserialization có thể dẫn đến RCE.
9. Từ chối dịch vụ (Denial of Service - DoS)#
Mục tiêu là làm quá tải hoặc làm sập trang web mục tiêu.
Web-based DoS: Các công cụ như Low Orbit Ion Cannon (LOIC) và High Orbit Ion Cannon (HOIC) được sử dụng để làm tê liệt các trang web mục tiêu.
SYN Flood: Gửi một lượng lớn gói tin SYN để làm cạn kiệt tài nguyên kết nối của máy chủ.
TCP Full Connection: Tạo nhiều kết nối TCP đầy đủ để chiếm dụng tài nguyên và ngăn chặn các kết nối hợp lệ.
10. Tấn công logic (Logic Attacks)#
Đây là những tấn công khó phát hiện bằng các công cụ tự động vì chúng tập trung vào việc hiểu hoạt động của ứng dụng. Kẻ tấn công có thể gọi các chức năng không theo đúng thứ tự hợp lý hoặc lợi dụng các giao dịch không nhất quán của ứng dụng. Các ứng dụng Ajax và Web 2.0 rất lý tưởng cho loại tấn công này do logic kinh doanh thường được thực hiện ở phía client.
11. Các lỗ hổng khác#
Tải lên tệp không hạn chế (Unrestricted File Upload): Cho phép kẻ tấn công tải lên các tệp độc hại (ví dụ: webshell) lên máy chủ, sau đó có thể được thực thi.
Tấn công Client-Side: Clickjacking: Sử dụng các kỹ thuật CSS (ví dụ:
opacity:0) để làm cho các yếu tố không mong muốn trở nên vô hình, lừa người dùng nhấp vào chúng để thực hiện các hành động độc hại.- Giả mạo trang đăng nhập/lừa đảo (Phishing/Credential Harvesting): Tạo các trang đăng nhập giả mạo để lừa người dùng nhập thông tin nhạy cảm, sau đó thu thập mật khẩu.
Subdomain Takeover: Kẻ tấn công kiểm soát một subdomain của một tổ chức.
Server Side Request Forgery (SSRF): Máy chủ thực hiện các yêu cầu trên danh nghĩa của kẻ tấn công đến các tài nguyên nội bộ hoặc bên ngoài.
Lộ thông tin nhạy cảm (Sensitive Data Exposure): Nhiều ứng dụng web không bảo vệ dữ liệu nhạy cảm như thông tin tài chính, sức khỏe, hoặc thông tin người dùng, khiến chúng dễ bị đánh cắp.
Bộ nhớ bị hỏng (Memory Corruption): Bao gồm Buffer Overflow và PHP Memory Corruption.
12. Công cụ và Kỹ thuật Reconnaissance (Thu thập thông tin)#
Trước khi tấn công, kẻ tấn công thường thu thập thông tin về mục tiêu.
Web Crawling/Spidering: Sử dụng các công cụ như HTTrack, ZAP's spider, Burp Suite để tải xuống và phân tích trang web ngoại tuyến, tìm kiếm các tệp và thư mục liên quan.
Phân tích
robots.txt: Tệp này chỉ ra các thư mục và tệp mà các công cụ tìm kiếm không được lập chỉ mục. Tuy nhiên, kẻ tấn công có thể sử dụng thông tin này để khám phá các thư mục bị "ẩn" và truy cập chúng.OSINT (Open Source Intelligence): Thu thập thông tin từ các nguồn công khai.
Tạo danh sách từ (Wordlist Generation): Công cụ CeWL có thể thu thập danh sách từ từ một trang web, hữu ích cho các cuộc tấn công vét cạn mật khẩu.
Quét lỗ hổng (Vulnerability Scanning): Nikto: Đánh giá các vấn đề của máy chủ web.
Wapiti: Phát hiện các lỗ hổng như tiết lộ tệp, injection, XSS, thực thi lệnh, XXE.
W3af: Máy quét lỗ hổng web với khả năng tạo báo cáo HTML.
Arachni: Khung quét bảo mật ứng dụng web.
Nmap: Công cụ quét cổng và mạng mạnh mẽ, có thể sử dụng các tập lệnh để kiểm tra các lỗ hổng SSL/TLS.
Burp Suite: Một proxy chặn mạnh mẽ với các chức năng như Spider, Scanner, Intruder (tấn công tự động), Repeater (lặp lại yêu cầu).
ZAP Proxy (OWASP ZAP): Công cụ proxy và quét lỗ hổng ứng dụng web.
Metasploit: Khung kiểm tra xâm nhập mạnh mẽ để tấn công các dịch vụ.
DirBuster: Xác định các thư mục web nhạy cảm.
Wappalyzer và What CMS: Giúp nhận diện các công nghệ (CMS, framework, server) mà trang web đang sử dụng, cung cấp cái nhìn sâu sắc về cấu trúc mã và các lỗ hổng đã biết.
Shodan: Công cụ tìm kiếm thiết bị kết nối internet, có thể tiết lộ các cổng mở.
Google Dorks: Sử dụng các toán tử tìm kiếm nâng cao của Google để tìm thông tin nhạy cảm hoặc lỗ hổng.
IPV4info.com: Tìm các tên miền được lưu trữ trên cùng một máy chủ.
Recon-ng và KnockPy: Công cụ thu thập thông tin mạng, subdomain và tệp quan trọng.
Các cuộc tấn công này thường được thực hiện trong quá trình kiểm thử xâm nhập (penetration testing) hoặc săn lỗi bảo mật (bug bounty programs).
Bài liên quan trong #Tin tức
-
Hướng dẫn cách sửa boot trong 2 phút không cần cài lại Windows
minhdev · 💬 1 -
Tội phạm mạng đang dần "bỏ trốn" khỏi Telegram
minhdev -
Top 4 Website Đăng Tin Rao Vặt Bất Động Sản Miễn Phí Uy Tín Nhất Hiện Nay
topdev -
Tổng Hợp Các Trang Đăng Tin Bất Động Sản Miễn Phí Hiệu Quả Nhất 2025
topdev -
Cách Rời Nhóm Telegram Trong Im Lặng (Không Ai Biết) – Hướng Dẫn Chi Tiết
topdev