Tặng bộ plugin WordPress bản quyền trị giá $900 Nhận ngay
Bảo mật

MySQL và MariaDB có một lỗ hổng bảo mật nghiêm trọng

author Đặng Hoài Đức - 2021-10-22 09:13:38 (GMT+7)

Các nhà nghiên cứu bảo mật của GoSecure đã tìm thấy một lỗ hổng trong MySQL/MariaDB gây hậu quả bảo mật nghiêm trọng. Do đó, các khách hàng sử dụng dịch vụ Web Application Firewall (WAF) của AWS sẽ không được bảo vệ trước hình thức tấn công SQL Injection.

Vào năm 2013, một bài thuyết trình tại BlackHat với tiêu đề kỹ thuật tối ưu hóa và giải mã SQLi của Roberto Salgado giới thiệu các kỹ thuật bypass để đưa vào các cú pháp SQL không hợp lệ. Năm 2018, các nhà nghiên cứu của GoSecure đã xem lại bản thuyết trình đó và bắt đầu một số thử nghiệm với MySQLMariaDB

Lạm dụng ký hiệu khoa học thực hiện kĩ thuật bypass WAF

Các nhà nghiên cứu phát hiện ra lỗi ký hiệu khoa học (scientific notation), cụ thể là ký hiệu khoa học e được đề cập trong bài thuyết trình trên gây ra hậu quả lớn hơn tưởng tượng. Lỗi này cho phép các hacker thực hiện các cú pháp SQL vẫn hợp lệ cho dù nó không hợp lệ, và gây nhầm lẫn hệ thống cản lọc SQL Injection.

Bên cạnh đó, Amazon Web Services (AWS) có một sản phẩm có tên CloudFront có thể được kết hợp với AWS Web Application Firewall (WAF) với các quy tắc nhất định giúp các công ty bảo vệ các ứng dụng web của họ khỏi sự xâm nhập bất hợp pháp từ các hacker. 

Tuy nhiên, trong quá trình kết hợp, các nhà nghiên cứu phát hiện ra rằng quy tắc "SQL Database" trong AWS WAF có thể bị bypass với lỗi hiển thị. 

Sau đây là một truy vấn đơn giản có thể cho thấy rằng WAF đang chặn yêu cầu 1' or '1'='1

Bây giờ, hãy xem điều gì sẽ xảy ra nếu chúng ta sử dụng ký hiệu khoa học trong cách tiêm đơn giản này để tận dụng lỗi:

Từ khóa 1.e được sử dụng để khai thác tại hình trên. Đồng thời có thể sử dụng bất kỳ số nào cũng được, có thể nằm giữa dấu chấm và chữ e  (ví dụ: '1337.1337e' cũng hoạt động).

Các nhà nghiên cứu cung cấp cách sửa lỗi tạm thời

Cách khắc phục tạm thời là hủy bỏ truy vấn nếu mã thông báo không chính xác trong mã nguồn MySQL. Khi MySQL hoặc MariaDB tìm thấy điểm bắt đầu của mã thông báo float và mã thông báo float không được theo sau bởi một chữ số, nó sẽ hủy bỏ truy vấn.

 

AWS hiện đã cập nhật bản vá lỗ hổng trên cho WAF của họ. OWASP cũng đã xác nhận lỗ hổng trên và đang tiến hành chỉnh sửa bộ core rules (CRS) nhằm khắc phục vấn đề.

Việc khai thác lỗ hổng trên không dễ dàng, bởi thông thường các nền tảng của ứng dụng (như Laravel, Codeigniter...) sẽ có bộ lọc để cản lọc các hình thức tấn công SQL Injection. Sự việc sẽ nguy hiểm nếu ứng dụng không có bộ lọc nào và bạn đang phụ thuộc vào việc cản lọc của WAF, hoặc bộ lọc của ứng dụng bị bypass bởi lỗ hổng trên.

Nếu bạn đang quản trị máy chủ MySQL hoặc MariaDB, hãy kiểm tra các vấn đề bảo mật trên cho máy chủ và ứng dụng đang chạy.

Chia sẻ bài viết này
Nhận tin nóng liên quan đến Bảo mật bằng cách
Subscribe Kênh Telegram Tin công nghệ

Bài viết liên quan

BẢO MẬT
Tổng hợp các lỗ hổng bảo mật nguy hiểm được phát hiện trong năm 2021
author Đặng Hoài Đức 31 Tháng mười hai, 2021

BẢO MẬT
Hacker sử dụng rootkit HP iLO để xóa dữ liệu các máy chủ
author Đặng Hoài Đức 30 Tháng mười hai, 2021

BẢO MẬT
Các hacker Log4j chuyển sang khai thác tiền điện tử Monero
author Đặng Hoài Đức 17 Tháng mười hai, 2021

tin.123host.vnTin tức SysAdmin

Nơi cập nhật tin tức mới nhất dành cho SysAdmin.

Xem thêm