Máy quét lỗ hổng php miễn phí

Chỉ có một số lỗ hổng bảo mật nhất định mà bạn có thể kiểm tra bằng bất kỳ chương trình nào. Bạn có thể kiểm tra cấu hình PHP, cấu hình Apache, mật khẩu, các lỗi phổ biến, v.v. nhưng bạn thực sự không thể kiểm tra các lỗi logic theo chương trình có thể gây ra các lỗ hổng bảo mật

Đặt cược tốt nhất của bạn là thực hiện đánh giá mã kỹ lưỡng của trang web. Hoặc, tốt hơn nữa, nhờ một vài người khác thực hiện đánh giá mã kỹ lưỡng của trang web, tìm kiếm các lỗ hổng bảo mật

Nikto là một phần mềm mã nguồn mở được sử dụng để kiểm tra các vấn đề bảo mật của Máy chủ Web. Bài viết sau của Bizfly Cloud sẽ có mục đích hướng dẫn các bạn cách dò lỗi bảo mật của hệ thống. Chi tiết hãy cùng theo dõi nhé

Máy quét trang web Nikto

Hãy quét trang web và máy chủ của bạn ngay lập tức bằng Nikto Web Scanner phổ biến. Dịch vụ thử nghiệm này có thể được sử dụng để kiểm tra trang web, Máy chủ ảo và máy chủ web nhằm tìm ra các lỗi truy cập bảo mật và các lỗi cấu hình sai

Nikto thực hiện hơn 6000 bài kiểm tra trên một trang web. Số lượng lớn kiểm tra cho cả lỗ hổng bảo mật và máy chủ web bị định cấu hình sai khiến nó trở thành công cụ được ưa thích của nhiều chuyên gia bảo mật và quản trị viên hệ thống. Nó có thể tìm thấy các tập lệnh bị lãng quên và các vấn đề khác

Máy quét lỗ hổng php miễn phí

Cách sử dụng quét trang web Nikto

Select Target Address to Scan

Các mục tiêu có thể được nhập riêng lẻ hoặc dưới dạng danh sách tải lên hàng loạt

www. mywebsitetotest. com - Trang web tiêu biểu trên Cổng mặc định 80

10. 3. 12. 31 - Địa chỉ IP của một trang web trên Cổng 80

https. //www. mywebsitetotest. com - Trang web SSL trên Cổng mặc định 443

Kiểm tra Máy chủ ảo với Nikto

Nếu máy chủ web lưu trữ nhiều sử dụng bằng máy chủ ảo. Bạn nên kiểm tra từng máy chủ ảo bằng cách sử dụng Nikto để đạt hiệu quả tốt hơn. Trong thực tế, Nikto khá hữu ích trong việc quét các địa chỉ IP cũng như tên máy chủ của máy chủ để đảm bảo tất cả các đường dẫn được kiểm tra cho bất kỳ ứng dụng web và tập lệnh dễ bị tấn công nào

Thời gian chạy Nikto

Kiểm tra số lượng bảo mật mà công cụ này thực hiện, có thể mất 45 phút hoặc thậm chí lâu hơn, tùy thuộc vào tốc độ của máy chủ web

Tích cực sai với Nikto

Nikto hoạt động khá tốt trong việc phát hiện cấu hình máy chủ web trả về HTTP 200 OK trên kết quả "không tìm thấy trang" thực tế. Vì Nikto đang kiểm tra hàng trăm URL cho sự hiện diện của các tập lệnh cũ, ứng dụng dễ bị tấn công và các sự cố khác. Điều này đôi khi có thể dẫn đến nhiều sai sót nếu phát hiện 404 -> 200 không được phát hiện bởi Nikto. Không quá khó khăn để phát hiện khi bạn nhận được rất nhiều url không hợp lệ. Đây là cách kiểm tra thủ công khá dễ dàng để chắc chắn rằng chúng là dương tính giả thực sự

Về công cụ Nikto open source

Trình quét máy chủ web của Nikto là một công cụ bảo mật, nó kiểm tra một trang web để chỉ lấy được hàng hóa vấn đề bảo mật nếu có thể xảy ra. Bao gồm các tệp nguy hiểm, dịch vụ bị định cấu hình sai, tập lệnh dễ bị tấn công và rất nhiều vấn đề khác nữa. Nikto là mã nguồn mở và được cấu trúc với các plugin giúp mở rộng khả năng. Các plugin này thường xuyên được cập nhật với các kiểm tra bảo mật mới

Nikto không phải là một công cụ tàng hình. Nó sẽ tăng hơn 2000 yêu cầu HTTP GET tới máy chủ web, tạo ra một số lượng lớn các mục trong tệp nhật ký của máy chủ web. Sự thật đây là một cách tuyệt vời để thử nghiệm Hệ thống phát hiện xâm nhập (IDS). Bất kỳ giám sát nhật ký máy chủ web nào, phát hiện xâm nhập dựa trên máy chủ (HIDS) hoặc phát hiện xâm nhập dựa trên mạng (NIDS) nào cũng sẽ phát hiện ra Nikto scan

Tài liệu này sẽ liệt kê các mối đe dọa bảo mật có thể xảy ra đối với ứng dụng Web, giải thích và các biện pháp phòng ngừa

  1. dấu chân
  2. quét
  3. tiêm SQL
  4. Tải lên tệp
  5. Cướp phiên và cố định phiên
  6. Bao gồm tập tin từ xa
  7. XSS
  8. đánh giá()
  9. Giả mạo yêu cầu trên nhiều trang web (CSRF)
  10. Clickjacking
  11. Giả mạo tham số

Làm cách nào để biết một trang web có dễ bị tổn thương hay không?

Sau đây là phần mềm miễn phí sẽ quét và liệt kê các mối đe dọa tiềm ẩn đối với hệ thống theo tiêu chuẩn mã hóa phần mềm và cấu hình máy chủ

  1. Sao Chức Nữ
  2. ZAP OWASP
  3. Bản đồ XSSer, BeEF và SQL - Kiểm tra XSS, tiêm tập lệnh và tiêm MySQL

Thực tiễn tốt nhất để bảo mật ứng dụng web

  • Vô hiệu hóa một số tên người dùng nhất định như 'test', 'test123', 'admin' và 'root'

  • Sử dụng mã kiểm tra tự động (VD:. Kiểm tra nhanh PHP)

  • Hãy chú ý trong khi tạo cấu trúc dự án. Đảm bảo đặt thư mục tải lên bên ngoài Webroot để ngăn truy cập công khai

  • Sử dụng Gói hoặc Thư viện có sẵn trong packagist. org thay vì tạo một cái mới

  • Duy trì bảng đăng nhập người dùng (ngày đăng nhập, thời gian, IP)

  • Chạy thử nghiệm thủ công trong một khoảng thời gian nhất định hoặc sau khi cập nhật quan trọng

  • Vô hiệu hóa mô-đun PHP không sử dụng (ví dụ:.

    My Commenting System";
    
    echo $user_input;
    
    ?>
    2,
    My Commenting System";
    
    echo $user_input;
    
    ?>
    3,
    My Commenting System";
    
    echo $user_input;
    
    ?>
    4 ) từ php. ini cho hiệu suất và bảo mật

  • Đặt một. htaccess với nội dung sau trong thư mục tải lên để ngăn việc thực thi tệp PHP. Thay vào đó, nó sẽ tải xuống tệp

  • Luôn đặt quyền truy cập tệp đã tải lên ở mức tối thiểu hoặc không thể thực thi (0644)

  • Xáo trộn tên và phần mở rộng tệp đã tải lên

Cửa hậu PHP

Các tập lệnh ẩn PHP như c99, c99madshell và r57 để bỏ qua tất cả xác thực và truy cập máy chủ theo yêu cầu được gọi là tập lệnh PHP Backdoor. Điều này sẽ cung cấp cho họ hầu hết mọi quyền truy cập như tải xuống, tải lên, kiểm soát máy chủ, cơ sở dữ liệu và máy chủ thư

Để ngăn chặn điều này, hãy làm theo tất cả các biện pháp phòng ngừa và thỉnh thoảng tìm kiếm các tập lệnh đó trong máy chủ của bạn

 grep -iR 'c99' /var/www/html/
 grep -iR 'r57' /var/www/html/
 find /var/www/html/ -name \*.php -type f -print0 | xargs -0 grep c99
 grep -RPn "(passthru|shell_exec|system|base64_decode|fopen|fclose|eval)" /var/www/html/

Tài nguyên


Thực hiện theo các phương pháp mã hóa an toàn của OWASP và danh sách kiểm tra của họ để kiểm tra mọi lỗ hổng ( https. //www. con ong bắp cày. tổ chức)


PHPSC ( http. //phpsec. org/) nhóm các chuyên gia PHP chuyên thúc đẩy các phương pháp lập trình an toàn trong cộng đồng PHP. Các thành viên của PHPSC tìm cách giáo dục các nhà phát triển PHP về bảo mật thông qua nhiều nguồn tài nguyên, bao gồm tài liệu, công cụ và tiêu chuẩn

Tác giả. Dương Nguyễn Phú Cường

Ngày đăng. Hồi xưa đó

Các mối đe dọa bảo mật tiềm ẩn

Về cơ bản, họ là hai nhóm người có thể tấn công hệ thống của bạn

  • Tin tặc – với mục đích giành quyền truy cập vào dữ liệu trái phép hoặc làm gián đoạn ứng dụng
  • Người dùng – họ có thể vô tình nhập sai các tham số trong các biểu mẫu có thể có tác động tiêu cực đến trang web hoặc ứng dụng web

Sau đây là các loại tấn công mà chúng ta cần chú ý. SQL injection – Kiểu tấn công này thêm mã có hại vào câu lệnh SQL. Điều này được thực hiện bằng cách sử dụng biểu mẫu đầu vào của người dùng hoặc URL sử dụng các biến. Đoạn mã nối thêm nhận xét điều kiện trong mệnh đề WHERE của câu lệnh SQL. Mã được nối thêm cũng có thể;

  • chèn một điều kiện sẽ luôn đúng
  • xóa dữ liệu khỏi bảng
  • cập nhật dữ liệu trong bảng
  • Kiểu tấn công này thường được sử dụng để giành quyền truy cập trái phép vào một ứng dụng

Cross-site scripting – kiểu tấn công này chèn mã có hại thường là JavaScript. Điều này được thực hiện bằng cách sử dụng các biểu mẫu đầu vào của người dùng, chẳng hạn như biểu mẫu liên hệ với chúng tôi và nhận xét. Điều này được thực hiện để;

  • Truy xuất thông tin nhạy cảm như dữ liệu cookie
  • Chuyển hướng người dùng đến một URL khác
  • Các mối đe dọa khác có thể bao gồm – Tiêm mã PHP, Tiêm Shell, Tiêm email, Tiết lộ mã nguồn tập lệnh, v.v.

Thực tiễn tốt nhất về bảo mật ứng dụng PHP

Bây giờ chúng ta hãy xem xét một số thực tiễn tốt nhất về Bảo mật PHP mà chúng ta phải xem xét khi phát triển ứng dụng của mình

Các hàm strip_tags xóa các thẻ HTML, JavaScript hoặc PHP khỏi một chuỗi. Chức năng này rất hữu ích khi chúng ta phải bảo vệ ứng dụng của mình trước các cuộc tấn công như cross site scripting. Hãy xem xét một ứng dụng chấp nhận nhận xét từ người dùng

My Commenting System";

echo $user_input;

?>

Giả sử bạn đã lưu ý kiến. php trong thư mục phptuts, duyệt đến URL http. //localhost/phptuts/bình luận. php

Let’s assume you receive the following as the user input  
alert('Your site sucks!');";

echo "

My Commenting System

"; echo $user_input; ?>

Duyệt đến URL http. //localhost/phptuts/bình luận. php

Bây giờ hãy bảo mật ứng dụng của chúng ta khỏi các cuộc tấn công như vậy bằng chức năng strip_tags.
alert('Your site sucks!');";

echo strip_tags($user_input);

?>

Duyệt đến URL http. //localhost/phptuts/bình luận. php

Hàm filter_var trong PHP

Hàm filter_var được sử dụng để xác thực và làm sạch dữ liệu. Xác thực kiểm tra xem dữ liệu có đúng loại không. Kiểm tra xác thực số trên một chuỗi trả về kết quả sai

Sanitization đang xóa các ký tự không hợp lệ khỏi một chuỗi. Kiểm tra liên kết này để có tham chiếu đầy đủ filter_var Mã dành cho hệ thống nhận xét. Nó sử dụng hàm filter_var và hằng số FILTER_SANITIZE_STRIPPED để tách thẻ

alert('Your site sucks!');";

echo filter_var($user_input, FILTER_SANITIZE_STRIPPED);

?>

đầu ra

________số 8

Chức năng Mysql_real_escape_string Chức năng này được sử dụng để bảo vệ một ứng dụng chống lại SQL injection. Giả sử rằng chúng ta có câu lệnh SQL sau để xác thực id người dùng và mật khẩu

Người dùng độc hại có thể nhập mã sau vào hộp văn bản id người dùng. ' HOẶC 1 = 1 -- Và 1234 trong hộp văn bản mật khẩu Hãy viết mã cho mô-đun xác thực

My Commenting System";

echo $user_input;

?>
0

Kết quả cuối cùng sẽ là

My Commenting System";

echo $user_input;

?>
1

NƠI ĐÂY,

  • “CHỌN * TỪ người dùng WHERE user_id = ''” kiểm tra id người dùng trống
  • “' OR 1 = 1 “ là điều kiện luôn đúng
  • “--" nhận xét phần kiểm tra mật khẩu

Truy vấn trên sẽ trả về tất cả người dùng Bây giờ chúng ta hãy sử dụng hàm mysql_real_escape_string để bảo mật mô-đun đăng nhập của chúng ta

My Commenting System";

echo $user_input;

?>
2

Đoạn mã trên sẽ xuất ra

My Commenting System";

echo $user_input;

?>
0

Lưu ý dấu ngoặc đơn thứ hai đã được thoát cho chúng tôi, nó sẽ được coi là một phần của id người dùng và mật khẩu sẽ không được nhận xét

PHP Md5 và PHP sha1

Md5 là từ viết tắt của Message Digest 5 và sha1 là từ viết tắt của Secure Hash Algorithm 1. Cả hai đều được sử dụng để mã hóa chuỗi. Một khi một chuỗi đã được mã hóa, thật tẻ nhạt khi giải mã nó. Md5 và sha1 rất hữu ích khi lưu trữ mật khẩu trong cơ sở dữ liệu. Đoạn mã dưới đây cho thấy việc triển khai md5 và sha1