Server Side Request Forgery (SSRF) là một dạng tấn công mà kẻ xấu lợi dụng máy chủ để gửi các yêu cầu trái phép tới các tài nguyên nội bộ hoặc bên ngoài. Việc hiểu và phòng ngừa SSRF giúp bảo vệ hệ thống khỏi rò rỉ dữ liệu nhạy cảm, truy cập trái phép và các mối đe dọa từ bên ngoài. Trong bài viết này, mình sẽ phân tích cơ chế hoạt động của SSRF, các nguy cơ tiềm ẩn và hướng dẫn chi tiết cách phòng ngừa hiệu quả.
Những điểm chính
- SSRF là gì: Tìm hiểu khái niệm SSRF, cách kẻ tấn công lợi dụng máy chủ để gửi yêu cầu đến các dịch vụ, tài nguyên nội bộ hoặc bên ngoài mà bên ngoài không truy cập trực tiếp được.
- Các hình thức tấn công SSRF phổ biến: Nắm được cách phân loại SSRF dựa theo mục tiêu, cũng như phương thức tấn công.
- Cơ chế hoạt động của SSRF: Hiểu cách attacker khai thác chức năng nhập URL thiếu kiểm soát trên ứng dụng web để điều khiển máy chủ gửi request trái phép, vượt qua các lớp bảo vệ truyền thống.
- Hậu quả nghiêm trọng khi bị SSRF: Thấy rõ các rủi ro như rò rỉ dữ liệu nhạy cảm, xâm nhập mạng nội bộ, leo thang đặc quyền, thực thi mã từ xa và tấn công từ chối dịch vụ.
- Cách phòng ngừa tấn công SSRF: Nắm được các biện pháp quan trọng như kiểm soát đầu vào chặt chẽ, ngăn chặn các kỹ thuật vượt lọc, giới hạn quyền truy cập mạng máy chủ, và kiểm tra bảo mật định kỳ.
- Ví dụ thực tế khai thác SSRF: Xem chi tiết các mã nguồn dễ mắc lỗi SSRF, kịch bản payload và cách attacker sử dụng để truy cập tài nguyên bên trong hệ thống.
- Biết thêm Vietnix là nhà cung cấp dịch vụ Firewall Anti DDoS và hạ tầng lưu trữ chất lượng cao.
- Câu hỏi thường gặp: Giải đáp các thắc mắc xoay quanh tấn công SSRF.

SSRF là gì?
SSRF (Server-Side Request Forgery) là một lỗ hổng bảo mật website, trong đó kẻ tấn công lợi dụng ứng dụng chạy phía máy chủ để tạo ra các yêu cầu HTTP/CURL tùy ý tới các địa chỉ mà attacker kiểm soát hoặc các dịch vụ nội bộ/vùng tin cậy nội bộ mà thông thường kẻ tấn công không thể truy cập trực tiếp.

Mục đích của SSRF là khiến server thực hiện các truy vấn tới tài nguyên mà kẻ tấn công chỉ định, từ đó dẫn đến nguy cơ rò rỉ thông tin, xâm nhập hoặc khai thác tài nguyên nội bộ, thậm chí có thể dẫn tới thực thi mã độc hoặc làm lộ dữ liệu nhạy cảm. Lỗ hổng này phát sinh do ứng dụng không kiểm soát chặt chẽ dữ liệu đầu vào của người dùng khi sử dụng để truy xuất tài nguyên bên ngoài hoặc nội bộ máy chủ.
Nếu bạn là nhà quản trị website, hãy tham khảo ngay giải pháp Firewall Anti DDoS của Vietnix. Dịch vụ này giúp bảo vệ máy chủ và website khỏi các cuộc tấn công từ chối dịch vụ, đảm bảo hệ thống vận hành ổn định, bảo mật dữ liệu và nâng cao uy tín doanh nghiệp. Liên hệ Vietnix để được tư vấn giải pháp phòng chống DDoS tối ưu, phù hợp nhu cầu của từng doanh nghiệp!
Các hình thức tấn công SSRF phổ biến
Phân loại dựa trên mục tiêu tấn công
- Tấn công SSRF vào máy chủ: Kẻ tấn công dựa vào chức năng của ứng dụng để tạo ra các yêu cầu HTTP trực tiếp về máy chủ đang vận hành ứng dụng, phổ biến nhất là qua địa chỉ loopback như
localhosthoặc127.0.0.1. Mục đích nhằm truy cập đến các tài nguyên hoặc chức năng quản trị chỉ dành cho nội bộ, mở ra nguy cơ chiếm quyền hoặc lộ thông tin quan trọng. - Tấn công SSRF vào các hệ thống phụ trợ khác: Kẻ tấn công chuyển hướng ứng dụng gửi yêu cầu đến các thành phần backend bên trong mạng nội bộ hoặc dải địa chỉ riêng, vốn bị ngăn cách với bên ngoài. Việc truy cập trái phép vào các hệ thống này gây ra nguy cơ rò rỉ dữ liệu hoặc khai thác sâu các dịch vụ quan trọng bên trong hệ thống doanh nghiệp.
Phân loại dựa trên phương thức và hành vi tấn công
- SSRF đầy đủ: Attacker gửi yêu cầu độc hại và nhận được dữ liệu phản hồi từ máy chủ, cho phép dễ dàng khai thác thông tin nhạy cảm hoặc tác động lên hệ thống tùy ý.
- Blind SSRF: Attacker không nhận phản hồi trực tiếp mà cần dựa vào các tín hiệu gián tiếp như độ trễ phản hồi, lỗi hệ thống hoặc thay đổi bất thường để suy đoán kết quả sau khi gửi yêu cầu.
- SSRF dựa vào thời gian: Attacker đo thời gian phản hồi của hệ thống khi gửi các yêu cầu đến nhiều địa chỉ khác nhau trong mạng, qua đó xác định dịch vụ hoặc tài nguyên nội bộ mà không cần có dữ liệu trả về.
Cách thức hoạt động của SSRF
SSRF hoạt động dựa trên việc lợi dụng lỗ hổng trong ứng dụng web để điều khiển máy chủ thực hiện các yêu cầu HTTP đến các địa chỉ tùy chọn do kẻ tấn công chỉ định. Thông thường, ứng dụng cho phép người dùng nhập vào một URL hoặc tham số truy vấn tài nguyên bên ngoài, nhưng lại không kiểm soát chặt chẽ dữ liệu đầu vào này. Kẻ tấn công có thể thay đổi giá trị tham số, chuyển hướng truy vấn đến chính máy chủ hoặc các hệ thống nội bộ khác thay vì địa chỉ hợp lệ ban đầu.
Khi máy chủ thực hiện yêu cầu đến địa chỉ được chỉ định bởi attacker, các kiểm soát bảo mật thông thường như xác thực hoặc phân quyền nội bộ có thể bị vượt qua. Hacker nhờ đó tiếp cận các tài nguyên hay chức năng quan trọng mà thông thường không thể truy cập từ bên ngoài, chẳng hạn như API quản trị, dịch vụ nội bộ hoặc tài nguyên bảo mật. Nếu khai thác thành công, SSRF không chỉ giúp rò rỉ dữ liệu nhạy cảm mà còn có thể mở đường cho các cuộc tấn công sâu hơn vào hệ thống nội bộ hoặc tấn công các mục tiêu khác ngoài tổ chức.

Hậu quả nghiêm trọng của lỗ hổng SSRF
Nếu bị khai thác thành công, SSRF có thể dẫn tới các hậu quả nghiêm trọng, ảnh hưởng lớn đến bảo mật dữ liệu và vận hành hệ thống doanh nghiệp như:
- Rò rỉ dữ liệu nhạy cảm: Hầu hết các trường hợp tấn công SSRF đều nhằm vào việc lấy cắp mã nguồn, file cấu hình, thông tin đăng nhập cơ sở dữ liệu, khóa API hoặc dữ liệu khách hàng, gây rò rỉ các thông tin quan trọng.
- Xâm nhập mạng nội bộ: SSRF giúp kẻ tấn công kiểm soát truy cập từ bên ngoài, quan sát và tương tác với mạng nội bộ vốn được bảo vệ chặt chẽ, mở ra khả năng tiếp cận các dịch vụ hoặc tài nguyên chỉ dành cho hệ thống bên trong.
- Chiếm quyền kiểm soát máy chủ: Tận dụng lỗ hổng này, attacker có thể gửi các lệnh tới dịch vụ backend không có lớp bảo vệ như Redis, Elasticsearch để thay đổi cài đặt, thực thi lệnh và tiến tới chiếm quyền điều khiển máy chủ.
- Thực thi mã từ xa (RCE): Khi SSRF kết hợp cùng một lỗ hổng khác, kẻ tấn công dễ dàng thực hiện việc chạy mã tùy ý trên máy chủ, cài đặt phần mềm độc hại hoặc tạo cửa hậu để kiểm soát hệ thống.
- Tấn công từ chối dịch vụ (DoS): Máy chủ chịu tấn công SSRF có thể bị ép gửi liên tục nhiều truy vấn tới các dịch vụ nội bộ trọng yếu, dẫn tới cạn kiệt tài nguyên, làm gián đoạn hoặc sập dịch vụ quan trọng của doanh nghiệp.

Cách phòng ngừa tấn công SSRF
- Kiểm soát dữ liệu đầu vào
- Chặn các kỹ thuật bypass lọc địa chỉ
- Hạn chế quyền truy cập mạng cho máy chủ
- Rà soát và kiểm thử bảo mật định kỳ
Kiểm soát dữ liệu đầu vào
Xác thực chặt chẽ mọi dữ liệu do người dùng nhập vào, đặc biệt là các tham số URL hoặc địa chỉ dùng để truy cập tài nguyên từ phía máy chủ. Chỉ cho phép truy cập đến các địa chỉ hoặc domain cần thiết với nghiệp vụ, ứng dụng và loại bỏ khả năng nhập tự do hay truy vấn tới server nội bộ, loopback, IP riêng hoặc các dịch vụ nhạy cảm. Kỹ thuật whitelist nên được ưu tiên hơn blacklist nhằm tăng mức độ kiểm soát, hạn chế nguy cơ vượt mặt các bộ lọc thông thường.
Chặn các kỹ thuật bypass lọc địa chỉ
Thực hiện kiểm tra định dạng địa chỉ IP dưới nhiều biểu diễn khác nhau như thập phân, bát phân, hoặc tên miền giả trỏ về địa chỉ nội bộ. Ngoài ra, bạn cần kiểm soát các mánh lách luật như URL encoding, sử dụng fragment, username hoặc chuyển hướng khi kiểm duyệt đầu vào, kết hợp block các scheme lạ như gopher, file, ftp nhằm giảm nguy cơ bị khai thác qua các dạng payload phức tạp.
Hạn chế quyền truy cập mạng cho máy chủ
Thiết lập firewall giới hạn quyền outbound của máy chủ ứng dụng, chỉ cho phép các kết nối thiết yếu ra ngoài và ngăn truy cập tới dải IP nội bộ, dịch vụ quản trị, hoặc các phân vùng mạng nhạy cảm. Mỗi dịch vụ web cần được cô lập về quyền truy cập mạng, chạy với phân vùng quyền tối thiểu, nhằm giảm thiểu phạm vi ảnh hưởng nếu xuất hiện lỗ hổng SSRF.
Rà soát và kiểm thử bảo mật định kỳ
Thường xuyên thực hiện kiểm thử bảo mật, rà soát các lỗ hổng SSRF thông qua công cụ tự động kết hợp với kiểm thử thủ công, đặc biệt ở các lỗ hổng xuất hiện trong XML, HTTP header hoặc các dịch vụ backend. Việc kiểm thử liên tục giúp phát hiện, vá lỗi kịp thời và chủ động phòng ngừa các nguy cơ mới phát sinh.

Ví dụ thực tế khai thác lỗ hổng SSRF
Đoạn code PHP dễ dính SSRF
Lỗ hổng SSRF xuất hiện phổ biến trong các ứng dụng PHP khi sử dụng thiếu kiểm soát các hàm làm việc với URL như file_get_contents(), fsockopen(), curl_exec(). Nhà phát triển cho phép người dùng nhập tham số URL tự do, sau đó truyền trực tiếp cho hàm mà không kiểm tra nguồn hoặc giá trị, dẫn đến khả năng attacker truy xuất tài nguyên nội bộ server, đọc file nhạy cảm (ví dụ: /etc/passwd) hoặc tương tác với các dịch vụ chỉ truy cập được qua mạng local.
Ví dụ:
<?php
if (isset($_GET['url'])) {
$url = $_GET['url'];
$content = file_get_contents($url);
echo $content;
} else {
echo "Give me the URL to show your content!";
}Với code trên, attacker chỉ cần truyền tham số url là một địa chỉ nội bộ hoặc một file hệ thống, hệ thống sẽ trả về nội dung mà không kiểm soát truy cập hoặc kiểm tra nguồn.
Code Python dễ gặp SSRF khi thao tác với requests
Trong Python, các web service sử dụng thư viện requests kết hợp Flask cũng có thể dính SSRF nếu bỏ qua kiểm soát URL đầu vào.
Ví dụ:
from flask import *
import requests
app = Flask(__name__)
@app.route('/ssrf')
def follow_url():
url = request.args.get('url', '')
if url:
return (requests.get(url).text)
return "no url parameter provided"
if __name__ == '__main__':
app.run(host = "0.0.0.0", port = 9999)Đoạn code trên cho phép bất kỳ URL nào do người dùng cung cấp được máy chủ truy vấn mà không loại trừ IP nội bộ, domain local. Từ đó tạo ra nguy cơ truy cập trái phép các nội dung nhạy cảm phía backend
Quy trình tấn công thực tế và các payload SSRF điển hình
Kẻ tấn công có thể lợi dụng chức năng kiểm tra tồn kho (stock check) hoặc các truy vấn tới API backend để gửi các tham số URL độc hại chứa địa chỉ nội bộ như http://localhost/admin hoặc http://127.0.0.1/admin.
Sau khi kiểm thử bằng các công cụ như Burp Collaborator, attacker sẽ xác định được hệ thống backend phản hồi trực tiếp khi truy vấn các URL bất kỳ.
Các payload SSRF ví dụ:
stockApi=http://localhost/adminstockApi=http://127.0.0.1/admin/delete?username=carlos
Thông qua đó, attacker không chỉ xem được giao diện quản trị mà còn thực thi các thao tác quản trị như xóa tài khoản, thay đổi cấu hình hoặc tiếp tục leo thang tấn công sâu vào hệ thống nội bộ mà bình thường chỉ có admin hoặc kênh truy cập nội bộ mới thực hiện được.
Vietnix – Đơn vị cung cấp dịch vụ Firewall Anti DDoS và hạ tầng lưu trữ tốc độ cao
Vietnix là nhà cung cấp giải pháp bảo mật đa lớp với Hosting và VPS cấu hình an toàn, Firewall Anti-DDoS chuyên nghiệp cùng chứng chỉ SSL/HTTPS uy tín, chất lượng. Kết hợp hạ tầng mạnh mẽ và đội ngũ chuyên gia an ninh, Vietnix giúp doanh nghiệp chủ động phòng chống tấn công, bảo vệ dữ liệu nhạy cảm, tối ưu an toàn và uy tín khi vận hành hệ thống trực tuyến. Liên hệ Vietnix để được tư vấn giải pháp bảo mật toàn diện cho website và máy chủ!
Thông tin liên hệ:
- Website: https://vietnix.vn/
- Hotline: 1800 1093
- Email: sales@vietnix.com.vn
- Địa chỉ: 265 Hồng Lạc, Phường Bảy Hiền, Thành Phố Hồ Chí Minh
Câu hỏi thường gặp
SSRF khác gì so với CSRF?
SSRF thao túng máy chủ gửi yêu cầu đến các địa chỉ nội bộ hoặc dịch vụ mà attacker chỉ định, thường đánh vào backend hoặc hạ tầng mạng, gây nguy cơ rò rỉ dữ liệu hoặc chiếm quyền kiểm soát máy chủ. Ngược lại, CSRF lợi dụng trạng thái đăng nhập của người dùng để ép họ thực hiện hành động không mong muốn trên website, tập trung khai thác thông qua trình duyệt và tài khoản của nạn nhân.
Blind SSRF là gì?
Blind SSRF là một dạng SSRF mà kẻ tấn công không nhận được phản hồi trực tiếp từ yêu cầu mà họ đã tạo ra. Điều này làm cho việc phát hiện và khai thác trở nên khó khăn hơn. Kẻ tấn công thường phải sử dụng các kỹ thuật gián tiếp (out-of-band) như buộc máy chủ ping đến một địa chỉ họ kiểm soát để xác nhận lỗ hổng.
Làm thế nào để kiểm tra website có bị lỗ hổng SSRF không?
Để kiểm tra lỗ hổng SSRF, bạn cần thử nhập các URL hoặc IP nội bộ (localhost, 127.0.0.1, private IP) vào các chức năng lấy URL của ứng dụng và quan sát xem server có truy cập các địa chỉ cấm này không. Kết hợp công cụ như Burp Collaborator sẽ giúp phát hiện request ra ngoài hoặc tới domain attacker điều khiển.
Vai trò của WAF trong việc chống SSRF là gì?
WAF đóng vai trò như lớp lọc, ngăn chặn các truy vấn độc hại hoặc truy cập tới IP/URL bất thường trước khi đến server backend. Tuy vậy, bạn vẫn cần kết hợp cấu hình đúng và kiểm soát đầu vào chặt chẽ để bảo vệ hiệu quả khỏi SSRF.
SSRF là một lỗ hổng bảo mật nghiêm trọng, có khả năng gây ra những thiệt hại nặng nề cho hệ thống nếu không được phòng ngừa đúng cách. Đối với các nhà phát triển và quản trị viên hệ thống, việc duy trì một tư duy bảo mật chủ động và thường xuyên kiểm thử hệ thống sẽ là chìa khóa để xây dựng một môi trường web an toàn và bền vững. Cảm ơn bạn đã theo dõi bài viết!















