Home / Sharenewshort / JSON-Based SQLi: Kỹ Thuật Bypass WAF Thời Hiện Đại

JSON-Based SQLi: Kỹ Thuật Bypass WAF Thời Hiện Đại

Tóm tắt ý tưởng chính

WAF (Web Application Firewall) là tuyến phòng thủ quan trọng bảo vệ các ứng dụng web khỏi SQLi. Tuy nhiên, nghiên cứu từ Claroty Team82 đã chỉ ra một kỹ thuật mới: tận dụng các hàm JSON hỗ trợ trong PostgreSQL và MySQL để bypass signature-based detection của nhiều WAF.


1. Các DBMS hỗ trợ JSON

PostgreSQL và MySQL 5.7+ hỗ trợ JSON syntax. Kẻ tấn công có thể khai thác bằng cách so sánh giá trị với các field tổng hợp từ chuỗi JSON.

SELECT * FROM users WHERE '1' = '{"a":"1"}'::json->>'a';

Hoặc trong MySQL:

SELECT * FROM users WHERE JSON_EXTRACT('{"a":1}', '$.a') = 1;

Signature-based WAF không nhận ra kiểu tấn công này.


2. Phân tích các payload thông minh

| Mục đích | Payload JSON | Đồng nghĩa với |
| ————– | ————————————————————- | ————– |
| Bypass so sánh | 1 = '{"a":1}'::json->>'a' | 1 = 1 |
| Bypass logic | true = json_extract('{"x":true}', '$.x') | true = true |
| Truy vấn field | SELECT * FROM t WHERE id = JSON_EXTRACT('{"id":5}', '$.id') | id = 5 |

Trong Markdown (chuyển dạng sang HTML):

Mục đích Payload JSON Đồng nghĩa với
Bypass so sánh 1 = ‘{“a”:1}’::json->>’a’ 1 = 1
Bypass logic true = json_extract(‘{“x”:true}’, ‘$.x’) true = true
Truy vấn field id = JSON_EXTRACT(‘{“id”:5}’, ‘$.id’) id = 5

3. Đánh giá ảnh hưởng với các WAF phổ biến

Nghiên cứu đã thử payload JSON-based SQLi trên nhiều WAF phổ biến. Kết quả:

`

WAF Kết quả
AWS WAF Bị bypass
Cloudflare Bị bypass
F5 Bị bypass
Imperva Bị bypass
Azure WAF Chặn được

4. Tại sao bypass được?

Phần lớn WAF dựa trên pattern match: regex, keyword filter, logic rule… Payload JSON lại:

  • Không dùng keyword nhận diện như OR, UNION, SELECT theo kiểu truyền thống
  • Truy vấn JSON trông “an toàn” với WAF signature thường
  • Vẫn hợp lệ với câu SQL backend

Do đó, signature-based detection bỏ qua hoàn toàn.


5. Giải pháp và khuyến nghị

  • WAF cần update signature để nhận dạng các đường truy vấn JSON-based
  • Sử dụng các công cụ context-aware thay vì regex thuần tuự
  • Dev backend cần sử dụng prepared statement để chống SQLi dừ dọl

Source link: JS-on Security Off: Abusing JSON-based SQL to Bypass WAF

Leave a Reply

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *