Cách vượt qua cơ chế bảo vệ của SafeDog trong kiểm thử bảo mật

Trong các bài kiểm thử trước, môi trường thường không có lớp bảo vệ nào. Tuy nhiên, khi website được cài đặt SafeDog — một công cụ bảo mật máy chủ phổ biến — thì nhiều kỹ thuật tấn công cơ bản sẽ bị chặn. Bài viết này sẽ hướng dẫn cách bypass một số cơ chế phòng thủ của SafeDog.

SafeDog là gì?

SafeDog là phần mềm bảo vệ website tích hợp nhiều tính năng như: quét mã độc, chống SQL Injection, chống hotlink, chống CC Attack, giám sát tài nguyên và lưu lượng truy cập, quản lý IP theo danh sách đen/trắng, và chống thay đổi nội dung trang web. Nó giúp ngăn chặn các cuộc tấn công nhằm vào máy chủ web theo thời gian thực.

Thiết lập môi trường thử nghiệm

Bạn có thể dùng XAMPP hoặc phpStudy để dựng môi trường local. Khi cài SafeDog, cần chú ý tên dịch vụ Apache — phiên bản mới của phpStudy không hiển thị rõ ràng. Để đặt lại tên dịch vụ, tắt Apache và chạy lệnh sau trong CMD:

httpd.exe -k install -n my_apache_service

Sau khi cài đặt thành công, bạn có thể bắt đầu kiểm tra các kỹ thuật bypass.

Vượt qua cơ chế chống SQL Injection

Thử nghiệm trên DVWA ở mức độ Low, nhập payload đơn giản như and 1=1 sẽ bị chặn. Dưới đây là một số thử nghiệm bypass:

and 1=1                    // Bị chặn
/**/and/**/1=1             // Bị chặn
/**/**&&**/**/1=1          // Bị chặn
/**/**&&**/**/1/**/like/**/1  // Thành công!

Với câu lệnh ORDER BY, cũng bị chặn. Nhưng nếu dùng cú pháp sau thì có thể bypass:

/*!order*/ /*!by*/ /*!5*/

Kỹ thuật dùng /*! */ (MySQL comment version-specific) rất hiệu quả. Ngoài ra, bạn cũng có thể thử kết hợp hoa thường, mã hóa URL, hoặc chèn khoảng trắng/ký tự đặc biệt.

Vượt qua cơ chế chống upload file độc hại

SafeDog thường chặn các đuôi file nguy hiểm như .php, .asp... Thử dùng lỗ hổng phân tích đuôi file của Apache: đổi tên file thành shell.php.xxxx → bị chặn. Tiếp tục thử với shell.php;jpg → upload thành công!

Dùng công cụ như China Chopper để kết nối → shell hoạt động bình thường.

Thử nhúng mã PHP vào ảnh (GIF/JPG/PNG), đổi tên thành image.jpg → upload thành công (lưu ý chỉnh giới hạn kích thước file trong request nếu cần). Kết nối bằng shell manager → vẫn hoạt động.

Một cách khác: dùng Burp Suite xóa header Content-Type trong request upload file .php → bypass thành công.

Upload và thực thi webshell lớn (big shell)

Khi upload big shell (file PHP lớn), SafeDog thường phát hiện và chặn. Giải pháp: upload big shell dưới dạng ảnh (đổi đuôi .jpg), sau đó tạo một file PHP nhỏ để include nó:

<?php
include("bigshell.jpg");
?>

Upload file nhỏ này bằng kỹ thuật đã bypass ở trên → big shell được thực thi thành công vì PHP xử lý nội dung bất kể đuôi file khi dùng include().

Thẻ: SafeDog bypass SQLi upload-bypass web-security

Đăng vào ngày 1 tháng 6 lúc 20:03