Webshell 入侵與防御全攻略

Webshell,是指攻擊者上傳到網站的遠程控制后門,允許黑客像管理員一樣遠程控制網站,執行惡意命令,甚至完全接管網站。本文將帶你深入了解 Webshell 的入侵方式以及相應的防御措施,幫助你加固自己的網站防線。

什么是 Webshell?

Webshell 是一個用于遠程控制的惡意腳本,它通常通過一些網站漏洞被黑客上傳到網站服務器上。Webshell 可以讓攻擊者執行命令,獲取服務器權限,從而影響網站的安全性。就像黑客偷偷在你的家里安裝了一個隱形的門鎖,隨時可以進入。


如何拿到 Webshell(網站入侵)?

  1. 文件上傳漏洞

    原理:
    許多網站允許用戶上傳文件(如圖片、文檔等)。如果網站沒有對上傳的文件進行嚴格檢查,攻擊者可以偽裝成圖片的惡意腳本(如 .php 文件),上傳到服務器,然后通過訪問該文件執行遠程命令。

    常見手法:

    • 改后綴: 上傳 shell.php.jpg,實際內容是 PHP 代碼,服務器錯誤地允許執行。
    • 繞過檢測: 使用“雙后綴”或“00 截斷”來逃避文件檢查。

    防御方法:

    • 限制文件類型: 只允許特定文件格式上傳(如 .jpg, .png),并對文件內容進行嚴格檢查。
    • 禁止執行文件目錄: 確保上傳文件的目錄無法執行代碼。

    實操防御:

    • 配置 Apache 或 Nginx 服務器,禁止上傳目錄中的文件執行:
       

location ~* \.(php|cgi|pl|jsp|asp)$ {
??? deny all;
}

后臺編輯模板

原理:
網站后臺管理系統通常允許管理員修改網頁模板。如果黑客獲得了后臺管理員權限(如通過弱密碼、釣魚等),他可以在模板文件中插入惡意代碼,進而創建 Webshell。

防御方法:

  • 設置強密碼: 保護后臺賬戶不被暴力破解。
  • 限制后臺權限: 只有信任的人員才能修改模板文件。

實操防御:

  • 配置強密碼策略,強制使用復雜密碼:

?

# 強密碼策略 (例如:6位數以上,包含大寫、小寫字母及數字)

SQL 注入寫 Webshell

原理:
SQL 注入漏洞允許攻擊者通過構造惡意的 SQL 查詢語句,操控數據庫,并利用它創建 Webshell。例如,攻擊者可以通過 SQL 注入在數據庫中插入 PHP 腳本,進而獲取服務器權限。

防御方法:

  • 使用預處理語句: 避免直接拼接 SQL 查詢語句。
  • 限制數據庫權限: 讓數據庫僅限于執行必要的操作。

實操防御:

  • 使用 PHP PDO 預處理語句:

?

$stmt = $pdo->prepare("SELECT * FROM users WHERE email = :email");
$stmt->execute(['email' => $email]);

命令執行漏洞

原理:
有些網站提供執行服務器命令的功能,如果沒有經過嚴格的安全過濾,攻擊者可以利用此功能執行任意命令,甚至可以上傳 Webshell。

防御方法:

  • 限制用戶輸入: 嚴格過濾用戶輸入,防止直接執行系統命令。
  • 白名單限制: 只允許執行特定的安全命令。

實操防御:

  • 配置服務器命令執行白名單:

?

$allowed_commands = ['ls', 'cat', 'whoami'];
if (in_array($command, $allowed_commands)) {
??? exec($command);
} else {
??? echo "Command not allowed.";
}

代碼執行漏洞

原理:
網站如果允許用戶輸入的內容直接被當成代碼執行,黑客可以利用這個漏洞,執行惡意代碼,從而生成 Webshell。

防御方法:

  • 禁止用戶輸入執行代碼: 防止用戶輸入被直接當成代碼執行。
  • 使用安全解析方式: 避免使用 eval()system() 等危險函數。

實操防御:

  • 替換 eval()

?

// 使用 safer eval() 實現

6.已知 CMS 漏洞

原理:
很多網站使用 CMS(如 WordPress、Discuz!、ThinkPHP),如果這些 CMS 有已知漏洞,攻擊者可以利用漏洞直接上傳 Webshell。

防御方法:

  • 及時更新 CMS: 修補已知漏洞,保持系統更新。
  • 關閉不必要的功能: 禁止不必要的功能(如插件或模塊)。

實操防御:

  • 設置自動更新插件:

?

# 配置自動更新 WordPress 插件

總結:如何防止 Webshell 入侵

黑客通常通過以下方式獲得 Webshell:

  • 文件上傳漏洞:偽裝文件上傳。
  • 后臺編輯模板:通過管理員權限插入代碼。
  • SQL 注入:通過數據庫生成 Webshell。
  • 命令執行:執行任意系統命令。
  • 代碼執行:執行惡意代碼。
  • CMS 漏洞:利用 CMS 安全漏洞上傳 Webshell。

防御措施:

  • 過濾用戶輸入,防止惡意代碼執行。
  • 及時更新系統和軟件,修補已知漏洞。
  • 嚴格限制文件上傳類型,避免后門程序上傳。
  • 設置強密碼,防止后臺暴力破解。

?

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/72587.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/72587.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/72587.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

NL2SQL-基于Dify+阿里通義千問大模型,實現自然語音自動生產SQL語句

本文基于Dify阿里通義千問大模型,實現自然語音自動生產SQL語句功能,話不多說直接上效果圖 我們可以試著問他幾個問題 查詢每個部門的員工數量SELECT d.dept_name, COUNT(e.emp_no) AS employee_count FROM employees e JOIN dept_emp de ON e.emp_no d…

雙鏈路提升網絡傳輸的可靠性擴展可用帶寬

為了提升網絡傳輸的可靠性或增加網絡可用帶寬, 通常使用雙鏈路冗余備份或者雙鏈路聚合的方式。 本文介紹幾種雙鏈路網絡通信的案例。 5GWiFi冗余傳輸 雙Socket綁定不同網絡接口:通過Android的ConnectivityManager綁定5G蜂窩網絡和WiFi的Socket連接&…

Ubuntu22.04安裝Ollama部署DeepSeek-R1:32B模型

一、環境準備 1.硬件要求 GPU: 至少 NVIDIA A30/A100 (顯存 ≥ 24GB)內存: ≥ 64GB RAM存儲: ≥ 100GB 可用空間 (模型文件約 60GB)2.軟件依賴 # 驗證NVIDIA驅動 nvidia-smi二、Ollama安裝 方法 1:install.sh安裝 運行一下安裝命令: curl -fsSL https://ollama.com/inst…

LeetCode 解題思路 10(Hot 100)

解題思路: 上邊: 從左到右遍歷頂行,完成后上邊界下移(top)。右邊: 從上到下遍歷右列,完成后右邊界左移(right–)。下邊: 從右到左遍歷底行,完成后…

Checkpoint 模型與Stable Diffusion XL(SDXL)模型的區別

Checkpoint 模型與 Stable Diffusion XL(SDXL)模型 在功能、架構和應用場景上有顯著區別,以下是主要差異的總結: 1. 基礎架構與定位 Checkpoint 模型 是基于 Stable Diffusion 官方基礎模型(如 SD 1.4/1.5)…

GCC RISCV 后端 -- C語言語法分析過程

在 GCC 編譯一個 C 源代碼時,先會通過宏處理,形成 一個叫轉譯單元(translation_unit),接著進行語法分析,C 的語法分析入口是 static void c_parser_translation_unit(c_parser *parser); 接著就通過類似遞…

第十五屆藍橋杯Scratch12月stema選拔賽真題—消失的水母

消失的水母 編程實現: 消失的水母。(角色、背景非源素材) 具體要求: 1、每次點擊綠旗,水母說“請輸入 2~10 的整數”,同時在舞臺下方顯示輸入框,如圖所示; 完整題目可點擊下方鏈…

Redis設計與實現-數據結構

Redis數據結構 1、RedisObject對象2、簡單動態字符串2.1 SDS定義2.2 SDS與C語言的區別2.3 SDS的空間分配策略2.3.1 空間預分配2.3.2 惰性空間釋放 2.4 SDS的API 3、鏈表3.1 鏈表的定義3.2 鏈表的API 4、字典4.1 字典的定義4.2 哈希算法4.3 哈希表的擴縮4.3.1 哈希表擴縮的判斷依…

由麻省理工學院計算機科學與人工智能實驗室等機構創建低成本、高效率的物理驅動數據生成框架,助力接觸豐富的機器人操作任務

2025-02-28,由麻省理工學院計算機科學與人工智能實驗室(CSAIL)和機器人與人工智能研究所的研究團隊創建了一種低成本的數據生成框架,通過結合物理模擬、人類演示和基于模型的規劃,高效生成大規模、高質量的接觸豐富型機…

RK3588開發筆記-fiq_debugger: cpu 0 not responding, reverting to cpu 3問題解決

目錄 前言 一、FIQ Debugger介紹 二、rockchip平臺配置方法 三、問題分析定位 IRQF_NOBALANCING 的含義 總結 前言 在進行 RK3588 開發的過程中,我們可能會遇到各種棘手的問題。其中,“fiq_debugger: cpu 0 not responding, reverting to cpu 3” 這個錯誤出現在RK3588的…

計算機視覺|ViT詳解:打破視覺與語言界限

一、ViT 的誕生背景 在計算機視覺領域的發展中,卷積神經網絡(CNN)一直占據重要地位。自 2012 年 AlexNet 在 ImageNet 大賽中取得優異成績后,CNN 在圖像分類任務中顯示出強大能力。隨后,VGG、ResNet 等深度網絡架構不…

SpringTask 引起的錯誤

SpringTask 引起的錯誤 1. 場景 在使用 SpringBoot 編寫后臺程序時,當在瀏覽器頁面中發起請求時,MP 自動填充來完成一些字段的填充,例如創建時間、創建人、更新時間、更新人等。但是當編寫微信小程序時,由于一些字段無法進行自動…

FPGA學習篇——Verilog學習4

1.1 結構語句 結構語句主要是initial語句和always語句,initial 語句它在模塊中只執行一次,而always語句則不斷重復執行,以下是一個比較好解釋的圖: (圖片來源于知乎博主羅成,畫的很好很直觀!) 1.1.1 initial語句 ini…

【Linux】【網絡】UDP打洞-->不同子網下的客戶端和服務器通信(未成功版)

【Linux】【網絡】UDP打洞–>不同子網下的客戶端和服務器通信(未成功版) 上次說基于UDP的打洞程序改了五版一直沒有成功,要寫一下問題所在,但是我后續又查詢了一些資料,成功實現了,這次先寫一下未成功的…

【Python編程】高性能Python Web服務部署架構解析

一、FastAPI 與 Uvicorn/Gunicorn 的協同 1. 開發環境:Uvicorn 直接驅動 作用:Uvicorn 作為 ASGI 服務器,原生支持 FastAPI 的異步特性,提供熱重載(--reload)和高效異步請求處理。 啟動命令: u…

前端權限流程(基于rbac實現思想)

1. 權限控制 1.1. 實現思想 基于rbac權限控制思想實現,給用戶分配角色,給角色分配權限 給用戶分配角色業務 注意:上方圖片是個示例圖,代表給用戶分配職位(角色),頁面中使用了Element-plus的el- checkbox組件…

軟件高級架構師 - 軟件工程

補充中 測試 測試類型 靜態測試 動態測試 測試階段 單元測試中,包含性能測試,如下: 集成測試中,包含以下: 維護 遺留系統處置 高水平低價值:采取集成 對于這類系統,采取 集成 的方式&…

python3.13安裝教程【2025】python3.13超詳細圖文教程(包含安裝包)

文章目錄 前言一、python3.13安裝包下載二、Python 3.13安裝步驟三、Python3.13驗證 前言 本教程將為你詳細介紹 Python 3.13 python3.13安裝教程,幫助你順利搭建起 Python 3.13 開發環境,快速投身于 Python 編程的精彩實踐中。 一、python3.13安裝包下…

【極客時間】瀏覽器工作原理與實踐-2 宏觀視角下的瀏覽器 (6講) - 2.5 渲染流程(上):HTML、CSS和JavaScript,是如何變成頁面的?

https://time.geekbang.org/column/article/118205 2.5 渲染流程(上):HTML、CSS和JavaScript,是如何變成頁面的? 2.4講了導航相關的流程,那導航被提交后又會怎么樣呢? 就進入了渲染階段。 這…

小模型和小數據可以實現AGI嗎

小模型和小數據很難實現真正的 通用人工智能(AGI, Artificial General Intelligence),但在特定任務或受限環境下,可以通過高效的算法和優化方法實現“近似 AGI” 的能力。 1. 為什么小模型小數據難以實現 AGI? AGI 需…