2009-01-12 32 views
5

Gần đây tôi đã nhận được một số cuộc tấn công trên trang web của mình, với User-Agent of NV32ts.NV32ts và Tấn công SQL Injection của nó đang cố gắng làm gì?

Tất cả họ đều là một số biến thể của các cuộc tấn công tiêm sau đây đối với một biến chuỗi truy vấn (trong đó 99999 đại diện cho một giá trị chuỗi truy vấn hợp lệ, cuộc tấn công được gắn với giá trị):

(Để thuận tiện tôi đã urldecoded các cuộc tấn công tiếp theo)

999999 And char(124)+(Select Cast(Count(1) as varchar(8000))+char(124) From [sysobjects] Where 1=1)>0 

hoặc

999999' And char(124)+(Select Cast(Count(1) as varchar(8000))+char(124) From [sysobjects] Where 1=1)>0 and ''=' 

hoặc

012.
999999' And char(124)+(Select Cast(Count(1) as varchar(8000))+char(124) From [sysobjects] Where 1=1)>0 and ''=' 

Tôi tin rằng sysobjects có liên quan đến cơ sở dữ liệu chủ Sql Server, nhưng tôi không thể tìm ra những gì họ đang cố gắng thực hiện.

Edit: bây giờ tôi đã thấy những điều tương tự với hai đại lý người dùng khác nhau:

  • NV32ts
  • Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; InfoPath.1;. NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; WWTClient2)

Trả lời

5

tôi đọc một hai cách , nhưng tôi không chắc chắn 100% là:

  1. Tại thời điểm này, chúng chỉ là câu cá. Kịch bản này đang tìm kiếm các trang web có cả lỗ hổng tiêm mở và truy cập vào bảng sysobjects trong máy chủ sql. Bảng đó sẽ cung cấp một danh sách tất cả các bảng và các cột (và các kiểu của chúng) trong cơ sở dữ liệu. Nếu trang thực sự trả về kết quả thay vì ném một lỗi, tập lệnh sẽ ghi nhật ký cho một cuộc tấn công chi tiết hơn trong tương lai. Cuối cùng bạn sẽ kết thúc với mã javascript độc hại nối vào mọi cột văn bản (varchar, nvarchar, char, nchar, text) của mỗi hàng của mỗi bảng trong toàn bộ db. Tôi nghĩ đây là lựa chọn có nhiều khả năng hơn.
  2. Nó tạo ra một biểu thức sẽ luôn trả về true, có lẽ cho phép chúng bỏ qua hệ thống xác thực của bạn. Điều này dường như ít có khả năng hơn, bởi vì tham chiếu sysobjects làm cho nó không cần thiết phức tạp. Ngoài ra: họ đã sử dụng And thay vì Or.
+0

Đồng ý, có vẻ như đang quét các lỗ hổng cơ bản đối với tôi. Không nhất thiết phải là một kịch bản (mà phụ thuộc vào hành vi thực sự). – Loki

5

Tôi tin rằng những gì họ đang cố gắng tìm ra ở đây là nếu ứng dụng của bạn dễ bị tấn công SQL Injection.

Char (124) dịch sang | ký tự mà buộc toàn bộ kết quả truy vấn được xem là kết quả của truy vấn với hai đường ống được đính kèm. Vì vậy, bạn kết thúc với số lượng các bảng trong cơ sở dữ liệu của bạn với hai ống kèm theo (ví dụ: 1428 |). Mà khi so sánh với 0 trong> 0 gây ra lỗi vì | 1428 | không phải là một int.

Vì vậy, nếu ứng dụng của bạn đang mở cho SQL Injection thì giờ đây họ biết điều đó (vì giá trị tham số hợp lệ khiến ứng dụng bị lỗi). Họ cũng có thể biết rằng bạn có xử lý lỗi xấu nếu chúng lỗi cơ sở dữ liệu SQL bong bóng lên đến đỉnh. Nếu bạn có xử lý lỗi xấu họ cũng biết có bao nhiêu bảng bạn có (không chắc chắn những gì tốt mà họ, nhưng càng có nhiều thông tin càng tốt).

Rất nhiều lần thử SQL injection thực sự có nghĩa là làm cho ứng dụng của bạn thất bại để biết rằng bạn dễ bị tổn thương. Nếu bạn xử lý các lỗi tốt thì họ có thể cố gắng để SQL mù tiêm bạn.

Khám phá this để xem chi tiết.

Tôi hy vọng rằng bạn không dễ bị tổn thương và nếu bạn may mắn!

0

HP có một công cụ miễn phí mà bạn có thể chạy để kiểm tra xem trang web của bạn (hoặc bất kỳ trang web nào) có lỗ hổng SQL Injection được gọi là sdrawlr hay không. Bạn có thể tải xuống số điện thoại here:

+0

Có ai biết nếu chính công cụ nv32ts có sẵn để tải xuống không? Tôi muốn có cơ hội để chạy nó trước khi những kẻ khác làm. –

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