2009-11-30 25 views
9

Có cách nào để xác nhận rằng một vi phạm bảo mật cụ thể đã được thực hiện thông qua SQL injection không?Làm cách nào để xác nhận việc tiêm SQL

+0

Bạn chắc chắn nó đã xảy ra, hay chỉ đáng ngờ? – kurast

+0

Trên thực tế các chi tiết mà chỉ có trong cơ sở dữ liệu đang được .. vì vậy điều đầu tiên mà đến với tâm trí của tôi là dbase có thể đã bị tấn công. – Sachindra

+0

bạn đã thử những gì tôi đề xuất? – kurast

Trả lời

1

sau khi cuộc tấn công đã xảy ra? Không. không có. bạn sẽ phải kiểm tra tất cả các điểm truy cập serevr sql của bạn để có nguy cơ tiềm ẩn. là một số công cụ bạn có thể sử dụng. Kiểm tra here trong phần công cụ SQL Injection.

0

Chỉ có một cách đáng tin cậy có lẽ là phân tích tệp nhật ký SQL. Những người này nên được thực hiện bởi một DBA, người có thể phát hiện ra mọi thứ nhanh chóng vì kích thước của các bản ghi sẽ rất lớn.


Tốt hơn là nên ngăn chặn chúng.

Có một số tools cho điều đó nhưng tốt nhất là bộ não của nhà phát triển.

Gắn bó với một quy tắc đơn giản - luôn sử dụng tham số khi tạo truy vấn SQL.
Chỉ thực hiện đánh giá mã và nếu bạn tìm thấy chuỗi cocatenations - đó là địa điểm đầu tiên và rất có thể cho SQL Injection.

+0

yêu cầu sử dụng thì quá khứ, tôi nghi ngờ rằng nó đã xảy ra. – lorenzog

+0

Có. Bạn đúng rồi. Tôi đã cập nhật câu trả lời một chút. –

-2

Bạn có thể đăng nhập tất cả các yêu cầu http và kiểm tra các trang được yêu cầu cho tryouts try/GET sql injection.

7

Không có cách nào dễ dàng ở đây, nhưng nếu bạn đã kích hoạt máy chủ SQL bạn sử dụng để đăng nhập mỗi câu lệnh sql đơn, dưới đây là những gì tôi sẽ làm.

Thông thường, khi tôi chèn SQL vào một nơi nào đó, tôi sử dụng một trong các câu lệnh này làm câu lệnh luôn đúng của tôi để chuyển qua mệnh đề Where, sau khi kết thúc chuỗi trước đó.

1=1 
0=0 

cả được sử dụng như:

blahblahblah' or 1=1 -- 

Bạn sẽ không sử dụng điều khoản này trong mã hàng ngày. Vì vậy, nếu bạn phát hiện ra một trong số này trong lịch sử của bạn, tốt, nó là một ứng cử viên cao. Kiểm tra lịch sử sql để tìm:

(space)(number)(optional spaces)(equal)(optional spaces)(same number)(space) 

Hãy ghi nhớ rằng là heuristical, và sẽ không luôn luôn làm việc, nhưng có thể là cách duy nhất để đưa ra một gợi ý sau khi nó đã xảy ra. Ngoài ra, nếu bạn nghi ngờ về việc tiêm SQL, bạn nên kiểm tra mã để nối chuỗi và sử dụng các tham số.

1

Sử dụng mod_security để đăng nhập yêu cầu POST và cài đặt Hệ thống phát hiện xâm phạm để ghi lại/ngừng hoạt động đáng ngờ từ bây giờ trở đi. Ghi lại mọi yêu cầu SQL là một chi phí nếu bạn chỉ tìm kiếm các điểm vi phạm.

Có các lựa chọn nguồn mở cho IDS những ngày này. Tôi sử dụng PHPIDS cho tất cả các ứng dụng PHP của mình.

1

Chèn SQL có thể xảy ra bất cứ lúc nào bạn chuyển truy vấn trở lại cơ sở dữ liệu.

SQL Injection

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