Hướng dẫn dùng php scanner trong PHP
Tạo máy tinh căn bản bằng PHP - Calculator in PHPSử dụng Ajax để phát triển bài này Ajax GET/POST trong PHP >> calculator Show #calculator.php
Progpilot là công cụ phân tích source code PHP với mục đích tìm các lỗ hổng bảo mật. Progpilot là công cụ phân tích tĩnh và sử dụng kỹ thuật taint checking để tìm lỗi. Với kỹ thuật này thì khả năng báo lỗi chính xác hơn so với kỹ thuật phân tích thông thường như regex chẳng hạn. Progpilot có hỗ trợ tìm lỗi trên các framework như: wordpress, symfony, codeigniter, prestashop, suitecrm. Trong bài này mình sẽ nếu:
Tổng quanProgpilot là công cụ phân tích tĩnh mã nguồn PHP để tìm kiếm các lỗ hổng bảo mật như: SQL injection, XSS, file inclusion, ....
Có nhiều kỹ thuật phân tích tĩnh với progpilot sử dụng kỹ thuật taint checking. Kỹ thuật này được hiểu đơn giản như sau:
Áp dụng kỹ thuật này progpilot cho ra kết quả đúng hơn nhiều so với cách phân tích thông thường. Vì kỹ thuật này chỉ ra nơi thực thi hàm nhạy cảm và điểm bắt đầu của dữ liệu từ đó đưa ra dự đoán chuẩn xác hơn. Progpilot cho phép sử dụng như một chương trình độc lập hoặc như một thư viện. Sử dụng như một chương trình độc lập Sử dụng như một thư viện
Cài đặt progpilotĐể cài đặt progpilot có 3 cách Tải file phar Cách này đơn giản và không gặp lỗi trong quá trình thực hiện. Để tải file thực thi truy cập vào link sau: https://github.com/designsecurity/progpilot/releases/tag/v0.8.0 Build từ source code Cách này loằng quằng và không thích hợp với những bạn chỉ muốn tải sử dụng công cụ. Mình thì muốn đọc source và thay đổi nó nên sử dụng cách này. Để tạo file phar từ source thì làm theo các bước sau.
Sử dụng composer Cách này tiện ở chỗ nó cho phép mình dùng progpilot như một thư viện và như một chương tình độc lập. Để thực hiện cài đặt thì dùng lệnh sau:
Khi thực hiện cài đặt theo cách này thì file thực thi của progpilot nằm tại đường dẫn Nhưng hiện tại mình vẫn không cài được do đang lỗi gì đó :v Sử dụngĐể sử dụng progpitlot ta phải dùng đến CLI mà không có giao diện. Điều này không ảnh hưởng gì đến mình mà ngược lại mình rất thích cách này. Cá nhân mình đánh giá dùng CLI đơn giản và tiện lợi hơn dùng giao diện nhiều lần. Cách sử dụng progpilot
Progpilot cho phép ta test một lúc nhiều file và nhiều folder cùng lúc. Hình trên mình test với 1 folder trong folder này chỉ có một file và file này cũng chỉ có một lỗi. Tập luậtProgpilot cho phép mình sửa luật của: sink, source, sanitizer, validator. Sources
Sinks
Sanitizers
Cấu trúc của các luật trên cơ bản là như nhau.
Một vài điểm khác:
Ví dụ viết một rule cơ bản cho sink là hàm loadXML
Trong ví dụ trên mình không sử dụng
Sau khi sử dụng mình đánh giá progpilot cho ra nhiều kết quả tốt. Nhưng cũng nhiều lỗi chưa tìm thấy nhưng đây là tool opensource nên kết quả vậy mình thấy là tốt. Để có thể cải thiện hiệu quả scan thì nên sửa rule hoặc thêm rule cho nó. Mình xin kết thúc bài ở đây! |