Điểm:1

Lỗ hổng SQL injection biến thể sản phẩm thương mại Drupal

lá cờ gg

Quá trình quét PCI trên trang web của tôi cho biết có lỗ hổng SQL Injection. Nhưng nơi nó dường như chỉ ra rằng nó nằm trên chức năng Thương mại khá cơ bản. Khi truy cập trực tiếp vào trang biến thể sản phẩm, nó sẽ thêm v=nn tới URL để hiển thị biến thể đã chọn.

Quá trình quét này gợi ý rằng các URL như:

?v=54+or+5459%3D5459&page=1

?v=54+or+6721%3D8812&page=1

... lần lượt trả về TRUE và FALSE (trả về ở đâu, tôi không thực sự chắc chắn).

Đây là tất cả hành vi khá mặc định của Drupal Commerce nếu tôi không nhầm. Có thể đây là kết quả dương tính giả từ quá trình quét PCI này không?

Tôi biết tôi chưa thêm bất kỳ truy vấn tùy chỉnh nào vào trang web này.Khác với chủ đề, đó là hành vi khá vượt trội. Và tôi không nghĩ rằng mình đang sử dụng trực tiếp tham số v= trong bất kỳ chủ đề nào của mình.

Tôi xin lỗi điều này là mơ hồ và chung chung, nhưng tôi đang tìm thêm một số thông tin về cách giải quyết kết quả PCI này.

Cảm ơn trước!

Điểm:3
lá cờ us

?v=54+or+5459%3D5459&page=1?v=54+or+6721%3D8812&page=1 sẽ cho phép tiêm SQL nếu mã đang chạy truy vấn sẽ sử dụng các giá trị được truyền trong URL mà không lọc chúng, chẳng hạn như mã sau đây. (Đó không phải là mã mà mô-đun đang sử dụng. Đó chỉ là mã cho phép tiêm SQL.)

$statement = "chọn * từ product_variation pv WHERE pv.id = {$_GET['v']}"; 

Các truy vấn SQL về cơ bản sẽ tương đương với các truy vấn sau.

chọn * từ pv product_variation trong đó pv.id = 54 hoặc 5459 = 5459
chọn * từ pv product_variation trong đó pv.id = 54 hoặc 6721 = 8812

Truy vấn SQL đầu tiên sẽ trả về tất cả các hàng trong product_variation bảng cơ sở dữ liệu, trong khi truy vấn thứ hai sẽ chỉ trả về hàng có ID bằng 54.

Các mô-đun đóng góp và lõi Drupal không nối các giá trị được truyền từ người dùng (thậm chí thông qua URL) với các chuỗi ký tự để tạo chuỗi SQL, nhưng sử dụng thay thế đối số thích hợp, khiến cho việc tiêm SQL không thể thực hiện được.
Chúng cũng không cho phép người dùng cung cấp bất kỳ toán tử nào cho điều kiện của truy vấn nhưng đặt danh sách các toán tử được phép và chỉ cho phép người dùng sử dụng các toán tử đó.

Quá trình quét PCI nhận thấy nó có hai kết quả khác nhau (THẬTSAI) sử dụng ?v=54+or+5459%3D5459&page=1?v=54+or+6721%3D8812&page=1, giải thích THẬT như có các hàng phù hợp với truy vấnSAI như không có hàng nào phù hợp với truy vấnvà nghĩ rằng SQL injection đã thành công. (Cách quét PCI có thể nói rằng việc truy cập các URL chứa các tham số truy vấn đó sẽ trả về THẬTSAI tôi cũng không rõ.)

Đó không phải là những gì đã xảy ra. Những gì được báo cáo bởi quá trình quét là dương tính giả.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.