rich@rich-vb-u24:~/pure-php-app$ grep "129.121.128.70" nginx/logs/*.log
nginx/logs/access.log:129.121.128.70 - - [13/Sep/2026:21:32:38 +0800] "POST /cgi-bin/.%2e/.%2e/.%2e/.%2e/.%2e/.%2e/.%2e/.%2e/.%2e/.%2e/bin/sh HTTP/1.1" 400 157 "-" "-" "-"
nginx/logs/access.log:129.121.128.70 - - [13/Sep/2026:21:32:38 +0800] "POST /cgi-bin/%%32%65%%32%65/%%32%65%%32%65/%%32%65%%32%65/%%32%65%%32%65/%%32%65%%32%65/%%32%65%%32%65/%%32%65%%32%65/bin/sh HTTP/1.1" 400 157 "-" "-" "-"
nginx/logs/access.log:129.121.128.70 - - [13/Sep/2026:21:32:42 +0800] "POST /hello.world?%ADd+allow_url_include%3d1+%ADd+auto_prepend_file%3dphp://input HTTP/1.1" 404 153 "-" "libredtail-http" "-"
nginx/logs/access.log:129.121.128.70 - - [13/Sep/2026:21:32:42 +0800] "POST /?%ADd+allow_url_include%3d1+%ADd+auto_prepend_file%3dphp://input HTTP/1.1" 404 153 "-" "libredtail-http" "-"
nginx/logs/access.log:129.121.128.70 - - [13/Sep/2026:21:32:42 +0800] "POST /index.php?%25ADd+allow_url_include%3D1+%25ADd+auto_prepend_file%3Dphp://input HTTP/1.1" 404 153 "-" "libredtail-http" "-"
nginx/logs/access.log:129.121.128.70 - - [13/Sep/2026:21:32:42 +0800] "POST /test.hello?%25ADd+allow_url_include%3D1+%25ADd+auto_prepend_file%3Dphp://input HTTP/1.1" 404 153 "-" "libredtail-http" "-"
nginx/logs/access.log:129.121.128.70 - - [13/Sep/2026:21:32:42 +0800] "POST /index.php?-d+allow_url_include%3don+-d+auto_prepend_file%3dphp%3a//input HTTP/1.1" 404 153 "-" "libredtail-http" "-"
nginx/logs/access.log:129.121.128.70 - - [13/Sep/2026:21:32:42 +0800] "GET /vendor/phpunit/phpunit/src/Util/PHP/eval-stdin.php HTTP/1.1" 404 153 "-" "libredtail-http" "-"
nginx/logs/access.log:129.121.128.70 - - [13/Sep/2026:21:32:42 +0800] "GET /vendor/phpunit/phpunit/Util/PHP/eval-stdin.php HTTP/1.1" 404 153 "-" "libredtail-http" "-"
rich@rich-vb-u24:~/pure-php-app$ grep "165.154.134.163" nginx/logs/*.log
nginx/logs/access.log:165.154.134.163 - - [13/Sep/2026:19:10:25 +0800] "GET / HTTP/1.1" 404 555 "-" "Mozilla/5.0 (Debian; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36" "-"
nginx/logs/access.log:165.154.134.163 - - [13/Sep/2026:19:10:25 +0800] "GET /favicon.ico HTTP/1.1" 404 555 "-" "Mozilla/5.0 (Debian; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36" "-"
這段日誌顯示你的伺服器正在遭受自動化黑客工具(或掃描器)的惡意漏洞掃描與遠端程式碼執行(RCE)嘗試。
這兩個 IP 的行為本質完全不同:129.121.128.70 是極具攻擊性的漏洞利用嘗試,而 165.154.134.163 則是一般的自動化探針。
好消息是,根據 NGINX 回應的狀態碼(400 和 404),這些攻擊在 NGINX 層面全部失敗了,並未成功入侵。
以下是詳細的技術分析與安全建議:
129.121.128.70 — 精準漏洞掃描與 RCE 嘗試 (極度危險)該 IP 在短短幾秒內連續發送多個針對特定知名漏洞的惡意 POST 和 GET 請求:
路徑穿越與命令執行嘗試 (狀態碼 400 - 失敗)
POST /cgi-bin/.%2e/.%2e/.../bin/sh HTTP/1.1
POST /cgi-bin/%%32%65%%32%65/.../bin/sh HTTP/1.1
.(.%2e 或 %%32%65)跳出網頁根目錄,直接執行伺服器底下的 /bin/sh 系統指令。PHP-CGI 遠端命令注入嘗試 (狀態碼 404 - 失敗)
POST /index.php?%ADd+allow_url_include%3d1+%ADd+auto_prepend_file%3dphp://input HTTP/1.1
POST /index.php?-d+allow_url_include%3don+-d+auto_prepend_file%3dphp%3a//input HTTP/1.1
d allow_url_include=1 等參數傳遞給 PHP 解析器,強迫 PHP 讀取並執行他們在 POST 請求主體(Body)中夾帶的惡意程式碼(透過 php://input)。/hello.world、/test.hello,或者你的 index.php 路徑不對,攻擊者找不到目標。PHPUnit 框架漏洞掃描 (狀態碼 404 - 失敗)
GET /vendor/phpunit/phpunit/src/Util/PHP/eval-stdin.php HTTP/1.1
eval-stdin.php 直接在伺服器上執行任意 PHP 程式碼。165.154.134.163 — 自動化網絡探針 (低風險)GET / HTTP/1.1" 404 555
GET /favicon.ico HTTP/1.1" 404 555
/ 和圖示 /favicon.ico 進行基礎的 GET 請求,看看這台伺服器有沒有開、開什麼網頁。目前是安全的。