12.25 Attack Briefing: Record of the Largest DDoS Attack to Date
This article was last updated 287 days ago. The information within may have evolved or changed; if anything is outdated or broken, please feel free to leave a message in the comments section.
Article Abstract
Recently suffered the largest-scale DDoS attack, which focused on the WordPress core path /wp-admin/admin-ajax.php. Cloudflare intercepted most of the traffic, but the internal WAF still filtered some requests that did not reach the rate limit. Attack statistics show an order of magnitude difference between Cloudflare's uncached requests and the internal WAF records, which may be caused by interception mechanisms or attack retries. The incident exposed that the current protection configuration tolerance is too high. In the future, rate limiting strategies need to be optimized, the WAF re-enabled, and monitoring capabilities improved to cope with similar attacks.
Qwen3-14B · 2026-06-18

Attack Scale

Between 3 AM and 6 AM this morning, we encountered a wave of DDoS attacks, which is the highest record so far and worth recording:

Number of Attack Requests:

image.png

Attack Bandwidth:

image.png

Number of Attackers:

image.png

Attacker Sources:

image.png

Top 3 IPs initiating attack requests and their request counts:
image.png

Attack Type

This attack was a direct attack targeting the ”/wp-admin/admin-ajax.php” path, which indeed hit me hard because WordPress's comment function relies on AJAX calls. I cannot apply managed challenges to this path (otherwise people wouldn't be able to comment). Previous attacks on my blog's admin-ajax.php were mainly indirect attacks initiating AJAX calls through TranslatePress (see article:Home Data Center Series: Solving the WordPress AJAX Protection Dilemma: Using Cloudflare Tunnel to Achieve Normal Website Access and ”Shunting” Protection of Attack Traffic), but I have already blocked that path. This time it was actually a direct attack, and Cloudflare blocked the vast majority of it:

image.png

However, there were still many attacks that did not reach the global rate limit entering the internal network. This part of the requests was filtered by the internal WAF:

image.png

image.png

But some requests still ended up reaching the origin server, because my tolerance for admin-ajax.php access was still too high:

image.png

It seems I can't leave these loopholes open in the future.


Both the ”number of attack requests” and ”attack bandwidth” mentioned earlier in the article involve uncached ”requests”. This raises a question: why are there only 18.29k uncached requests in Cloudflare's statistics, while there are up to nearly 2 million requests on my internal WAF? I think there are 3 possible reasons:

  • Cloudflare excludes intercepted requests (such as those triggering WAF rules, rate limits, DDoS protection, etc.) from “uncached requests”.
  • Attack tools may make multiple attempts on the same resource (such as admin-ajax.php), resulting in duplicate connections. For example, if an attacker sends a request and receives a 429 or other rate-limiting response, the tool automatically retries. The origin server will record multiple times, but Cloudflare only counts the initial request.

This kind of detail doesn't really matter anymore~.


Note 1: The statistical information visible on a Cloudflare Free account is too limited, which is quite annoying.

Note 2: The features of the free internal WAF are still too limited. Previously, I removed the load balancing behind the WAF because I felt it wasted resources, but now it seems there is still a need to add it back.

Note 3: This time it actually caused issues for my blog, forcing me to spend 1 second restarting the WordPress Docker container. I'm an honest person and will definitely admit it, but honestly, there's really no technical skill involved.

View Related Categories · 3 Matches
📌 Content Structure Prompt:
This content is part of the following knowledge map, where you can view the complete content path: Blog Knowledge Map。
📎 Related Articles
Share this article
The blog content is original, please indicate the source when reposting! The RSS address of the blog is:https://blog.tangwudi.com/feed, welcome to subscribe; if needed, you can join theTelegram Groupto discuss questions together.

Comments

  1. Windows Edge 131.0.0.0
    2 years ago
    2024-12-26 9:15:32

    Cloudflare is still pretty awesome. If it were a domestic CDN, they would send you a bill in minutes.

    • Owner
      Yawata
      Macintosh Chrome 131.0.0.0
      2 years ago
      2024-12-26 16:15:52

      Yes, if calculated at Tencent Cloud CDN's price of 20 RMB per 100G, that would be 1,000 RMB.

Send Comment Edit Comment


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗ
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
Kaomoji
Emoji
Little Dinosaur
Flower!
Previous
Next
       

👋 Welcome to “Wudi's Personal Blog”

Here, long-term exploration is mainly carried out around the following directions:

🧱 Personal Digital Infrastructure and Blog System Construction
☁️ Cloudflare and Network Architecture Practice
🧠 AI and Knowledge System Exploration
🛡️ Network Security and Access Optimization
🎵 Music and Sound Cognition
👁️ Cognitive Perspectives and Worldviews