2012-03-13 26 views
22

Tôi đã tìm kiếm và tìm thấy một good discussion here on SO, nhưng nó đã được vài năm.Làm cách nào để tự động kiểm tra trang web của tôi cho các cuộc tấn công SQL injection, sử dụng tập lệnh hoặc chương trình?

Có chương trình nào, hoặc có một tập lệnh đơn giản mà tôi có thể chạy, để tìm các lỗ chèn SQL trong URL trong toàn bộ trang web của tôi không?

Tốt hơn là, tôi muốn chạy một tập lệnh (PHP) hoặc chương trình thu thập dữ liệu trang web của tôi, từ liên kết đến liên kết, tìm lỗ và khi khám phá, lưu trữ URL đó để tôi có danh sách URL Cần phải sửa chữa.

Điều này có tồn tại không?

+0

Miễn là bạn sử dụng một thư viện tốt hoặc trích dẫn mọi thứ, thì việc tiêm SQL là điều ít quan tâm nhất của bạn.Tôi sẽ quan tâm hơn đến các cuộc tấn công XSS và an ninh mạng. – iLLin

+0

@iLLin Tôi đồng ý, nhưng vấn đề là trang web là 10 tuổi và khá lớn - có rất nhiều lỗ hổng SQL tồn tại từ những năm trước và tôi đang tìm cách dễ dàng tìm thấy chúng. –

Trả lời

16

Có và không. Đầu tiên tôi sẽ đề cập đến điều này bằng cách nói rằng tôi không chỉ đăng các liên kết mà đã thực hiện kiểm tra bảo mật một cách chuyên nghiệp bằng cách sử dụng tất cả các công cụ này chứ không phải là nhà phát triển trên dự án mà là tài nguyên bên ngoài. Lưu ý rằng nói chung sqlserver tiêm là khác với mysql là tốt.

công cụ miễn phí như paros Proxy [bóc tách] (đề cập ở trên),

burpsuite (trước đây đề cập [bóc tách] nhưng các cuộc tấn công tích cực đòi hỏi pro): http://portswigger.net/burp/

sqlninja (sqlserver chỉ) http://sqlninja.sourceforge.net/

proxy google chuột: [thu thập thông tin] http://code.google.com/p/ratproxy/

websecurify: [crawls] http://www.websecurify.com/

wapiti: [crawl nhưng cần làm việc để thiết lập - có thể được sử dụng đặc biệt cho SQLI với nhện] http://wapiti.sourceforge.net/

Nikto: [crawl nhưng không phải cho SQLI ...]

là tuyệt vời! Chúng có thể giúp bạn xác định các vấn đề nhưng mất rất nhiều phân tích của con người do số lượng lớn các kết quả dương tính giả. các công cụ thương mại có sẵn như: ([! crawl] một trong những tốt nhất)

NTOSpider: http://www.ntobjectives.com/software/ntospider

là rất tốn kém nhưng nói chuyện với một đại diện sẽ giúp bạn có được một bản sao miễn phí cho một khoảng thời gian (mà tôi có thực hiện với họ). Họ làm cho phân loại thông qua kết quả nhanh hơn bằng cách cung cấp các liên kết xác nhận trong các báo cáo nhưng bạn VẪN cần một mắt được đào tạo và phân tích như tôi đã tìm thấy tích cực sai.

Cuối cùng câu trả lời đúng cho câu hỏi này là: Bạn có thể sử dụng các công cụ để giúp bạn xác định nếu có lỗ hổng bảo mật (sqli) nhưng chỉ một mắt được đào tạo bằng cách sử dụng các công cụ có thể xác nhận chúng. Hơn nữa chỉ có một đánh giá mã thích hợp và phân tích có thể xác định các lỗ hổng mà một ứng dụng (thậm chí là một trong rất tốt) có thể bỏ lỡ.

Công cụ có thể giúp nhưng bạn cần thời gian và phân tích của con người để thực hiện điều này một cách chính xác. Proxy và yêu cầu quản lý là những công cụ thực sự để nhấn các ứng dụng với tiêm và được thực hiện với ý định cẩn thận của người kiểm tra được đào tạo hoặc những người có tâm trí tò mò.

0

gì tôi thử nghiệm trong các trang web của tôi:

Nếu bạn đã đăng nhập dưới dạng ví dụ cố gắng nhập: Trường

username: anytext or 1 = 1'

Mật khẩu lĩnh vực: anypassword

nếu bạn không bao gồm tiêm sql trong mã của mình, bạn có thể đăng nhập bằng cách đó.

Cảm ơn

+2

Cảm ơn, nhưng không phải những gì tôi đang tìm kiếm. Tôi biết làm thế nào để xác định SQL injection trên một trang duy nhất - Tôi đang tìm kiếm một kịch bản để thu thập thông tin các trang của tôi. –

3

Các Burp Scanner tác phẩm rất tốt cho việc tìm kiếm SQL injection cũng như một loạt các thứ khác. Bạn phải bỏ ra $ 300 cho máy quét mặc dù, nhưng đó là khá rẻ khi nhìn vào máy quét khác trên thị trường.

Để xây dựng, những gì bạn đang tìm kiếm là trình quét lỗ hổng ứng dụng web. Chúng sẽ thu thập dữ liệu trang web của bạn và gửi các vectơ tấn công vào các thông số khác nhau. Trong tất cả các máy quét mà tôi đã sử dụng, Burp đã cho tôi kết quả tốt nhất và có hiệu suất tuyệt vời. Nếu bạn đang tìm kiếm một thay thế miễn phí, bạn có thể thử Grendel Scan Nó đã không được cập nhật trong một thời gian nhưng vẫn hoạt động khá tốt. Đặc biệt là cho một công cụ miễn phí.

Đây là một list của một số máy quét dễ bị tổn thương khác có mặt ở đó. Tôi chắc chắn bạn sẽ tìm thấy một cái gì đó để đáp ứng nhu cầu của bạn.

+0

Burp là khá tốt đẹp và nó không giới hạn chỉ SQL injection bạn có thể tìm ra sơ hở khác mà bạn có thể không có đoán đã có. Bit tốn kém nhưng hoàn thành công việc. – Aleks

1

Có rất nhiều công cụ có mặt trên thị trường để thu thập dữ liệu tất cả các trang và phát hiện các lần tiêm SQL. Bạn nên đọc cuộc thảo luận này không bao giờ muộn How can I prevent SQL injection in PHP?Testing for security vulnerabilities in web applications: Best practices?.

Tôi sẽ đề xuất Wapiti để tìm lỗ hổng ứng dụng web. Acunetix có giá cao hơn.

Xem thêm:

8

Tôi có hai công cụ ưa thích (cả miễn phí):

  1. sqlmap - Bạn cung cấp cho nó một địa chỉ URL, và nó sẽ tự động quét các lỗ hổng . Nếu nó được đưa vào, nó sẽ cho bạn một dấu nhắc SQL.
  2. Paros Proxy - Quá trình này mất nhiều thời gian hơn để thiết lập. Bạn phải định cấu hình trình duyệt của mình để sử dụng proxy và sau đó sử dụng trang web của bạn (đăng nhập, điều hướng đến các trang khác, v.v.). Khi bạn đã hoàn tất, nó sẽ phân tích bộ nhớ cache của tất cả các yêu cầu bạn đã thực hiện và hiển thị một báo cáo về các lỗ hổng tiềm ẩn mà nó tìm thấy.
+0

Tôi có sqlmap, nhưng tôi đang tìm một cái gì đó để quét mà không có tôi cho nó một URL trực tiếp. Paros Proxy nghe có vẻ như nó tốt, mặc dù tôi vẫn phải thu thập thông tin theo cách thủ công, nhưng ít nhất thì tốt hơn thì hãy nhập URL theo cách thủ công. –

Các vấn đề liên quan