Webshell檢測初識

最近在研究webshell檢測的小東西,所以開啟一個專門記錄webshell檢測工具開發的專欄,若有遺漏之處,請大佬們指出。

本篇大致了解以下內容

  • 什么是webshll?有哪些類型?各自有什么不同?
  • Webshell有哪些常見的檢測方式?
  • 對于webshell檢測,最難的挑戰是什么?

【什么是webshll?有哪些類型?各自有什么不同?】
屬于木馬其中一種類型,主要是攻擊者通過web端,上傳一些惡意代碼文件,嘗試獲取服務器信息和權限的文件,一般的,利用能夠執行系統命令、加載代碼的函數,或者組合一些普通函數,完成一些高級間諜功能的網站后門的腳本,叫做 Webshell
大致分一句話木馬、小馬(通常比較簡單)、大馬(代碼量大,可以更好獲取服務器信息,但易被發現)

【Webshell有哪些常見的檢測方式?】
大致分為五種

  • 靜態檢測:常見的就是正則匹配文件md5對比,只能檢測固定的木馬腳本
  • 動態檢測:
    • 污點分析模擬執行:主要是借助php編譯的特性,在php的語法分析中生成AST,獲取命令執行關鍵執行節點,并獲取最終結果【可以借助php parser】
  • 語法檢測:剝離代碼、注釋,分析變量、函數、字符串、語言結構
  • 統計學檢測:主要是根據Webshell腳本與正常源碼的差異性來識別的
    • 詞袋統計
    • 基于黑白名單的檢測
    • 基于抽象語法樹的評分規則
    • 基于opcode的機器學習研究【詞袋分析】
      【哪一種檢測方式是比較有效的?】
  • 河馬采用的海量hash值匹配,數據夠大,準確率也會變高
  • 單純是php檢測的話,可以采用AST抽象樹,進行代碼剝離,得到最終的執行結果,這個是D盾的做法
  • 也可以用機器學習,通過數據訓練出來的hash值和敏感詞,進行統計計分,同樣需要大量的數據支撐

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

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

相關文章

鼠標側鍵映射虛擬桌面切換 —— Win11

鼠標側鍵映射虛擬桌面切換 —— Win11 基于 AutoHotkey 實現功能 下載軟件 AutoHotkey建議安裝在默認路徑下(C盤) 此軟件非常小,幾乎不占用資源軟件安裝在默認路徑以外的位置可能導致部分功能不可用 新建一個 .ahk 文件使用記事本打開該 .a…

哪款開放式耳機佩戴最舒服?2024五款備受推崇產品分享!

?在現今耳機市場,開放式耳機憑借其舒適的佩戴體驗和獨特的不入耳設計,備受消費者追捧。它們不僅讓你在享受音樂時,仍能察覺周圍的聲音,確保與人交流無障礙,而且有利于耳朵的衛生與健康。對于運動愛好者和耳機發燒友而…

GIGE 協議摘錄 —— 引導寄存器(四)

系列文章目錄 GIGE 學習筆記 GIGE 協議摘錄 —— 設備發現(一) GIGE 協議摘錄 —— GVCP 協議(二) GIGE 協議摘錄 —— GVSP 協議(三) GIGE 協議摘錄 —— 引導寄存器(四) GIGE 協議…

Flutter Dismissible 屬性介紹及使用指南

在移動應用開發中,滑動刪除是一種常見的交互方式。Flutter 提供了一個強大的小部件 Dismissible,使得實現這一功能變得非常簡單。本文將介紹 Dismissible 的主要屬性及其使用方法。 1. Dismissible 簡介 Dismissible 是一個 Flutter 小部件&#xff0c…

前后端實現文件上傳進度條-實時進度

后端接口代碼&#xff1a; PostMapping("/upload")public ResponseEntity<String> handleFileUpload(RequestParam("file") MultipartFile file) {try {// 獲取文件名String fileName file.getOriginalFilename();// 創建上傳目標路徑Path targetPa…

基于簡單Agent對醫療數據進行分析

數據表 供應商資格審核規定.pdf 醫生名錄.xlsx 歷史就診記錄.xlsx 患者信息名錄.xlsx 藥品.xlsx 藥品庫存管理.xlsx 采購單位基本信息.xlsx Agent測試 模型基于ChatGPT-3.5 問題&#xff1a;幫我找出不達標的供應商 Agent分析過程 [Thought: 0] Key Concepts: - 不達標的供…

P7 品牌管理

逆向生成頁面 新增菜單—商品系統的品牌管理 —product/brand 在代碼生成器得到的文件中&#xff0c; main-resources-src-views-modules-product brand.vue、brand-add-or-update.vue放到category.vue同級vue文件有新增、刪除按鈕&#xff0c;但頁面未顯示&#xff0c;是因…

嵌入式Linux系統中RTC應用的操作詳解

第一:RTC的作用以及時間簡介 “RTC”的英文全稱是Reul-Time Clock,翻譯過來是實時時鐘芯片.實時時鐘芯片是日常生活中應用最為廣泛的電子器件之一,它為人們或者電子系統提供精確的實時時間,實時時鐘芯片通過引腳對外提供時間讀寫接口,通常內部帶有電池,保證在外部系統關…

【Android】使用EventBus進行線程間通訊

EventBus 簡介 EventBus&#xff1a;github EventBus是Android和Java的發布/訂閱事件總線。 簡化組件之間的通信 解耦事件發送者和接收者 在 Activities, Fragments, background threads中表現良好 避免復雜且容易出錯的依賴關系和生命周期問題 Publisher使用post發出…

好書推薦-人工智能數學基礎

本書以零基礎講解為宗旨&#xff0c;面向學習數據科學與人工智能的讀者&#xff0c;通俗地講解每一個知識點&#xff0c;旨在幫助讀者快速打下數學基礎。    全書分為 4 篇&#xff0c;共 17 章。其中第 1 篇為數學知識基礎篇&#xff0c;主要講述了高等數學基礎、微積分、泰…

鴻蒙Ability Kit(程序框架服務)【應用啟動框架AppStartup】

應用啟動框架AppStartup 概述 AppStartup提供了一種更加簡單高效的初始化組件的方式&#xff0c;支持異步初始化組件加速應用的啟動時間。使用啟動框架應用開發者只需要分別為待初始化的組件實現AppStartup提供的[StartupTask]接口&#xff0c;并在[startup_config]中配置App…

Open vSwitch 數據包處理流程

一、Open vSwitch 數據包轉發模式 Open vSwitch 根據不同的模塊使用&#xff0c;主要分為兩種數據包的轉發模式&#xff1a;Datapath 模式和 DPDK 模式&#xff0c;這兩種模式的主要區別在于&#xff1a; Datapath 模式&#xff1a; 使用內核空間的網絡棧進行數據包的轉發性能相…

理解和實現 LRU 緩存置換算法

引言 在計算機科學中&#xff0c;緩存是一種用于提高數據訪問速度的技術。然而&#xff0c;緩存空間是有限的&#xff0c;當緩存被填滿時&#xff0c;就需要一種策略來決定哪些數據應該保留&#xff0c;哪些應該被淘汰。LRU&#xff08;最近最少使用&#xff09;算法是一種廣泛…

UML實現圖-部署圖

概述 部署圖(Deployent Diagram)描述了運行軟件的系統中硬件和軟件的物理結構。部署圖中通常包含兩種元素:節點和關聯關系&#xff0c;部署圖中每個配置必須存在于某些節點上。部署圖也可以包含包或子系統。 節點是在運行時代表計算機資源的物理元素。節點名稱有兩種:簡單名和…

android studio開發時提示 TLS 握手錯誤解決辦法

我用的是windows&#xff0c;遇到了這錯誤&#xff0c; The server may not support the clients requested TLS protocol versions: (TLSv1.2, TLSv1.3). You may need to configure the client to allow other protocols to be used. For more on this, please refer to http…

蒼穹外賣筆記-08-套餐管理-增加,刪除,修改,查詢和起售停售套餐

套餐管理 1 任務2 新增套餐2.1 需求分析和設計接口設計setmeal和setmeal_dish表設計 2.2 代碼開發2.2.1 根據分類id查詢菜品DishControllerDishServiceDishServiceImplDishMapperDishMapper.xml 2.2.2 新增套餐接口SetmealControllerSetmealServiceSetmealServiceImplSetmealMa…

c++替換字符或字符串函數

在C中&#xff0c;有多種方法可以替換字符串或字符。下面是一些常用的方法&#xff1a; 使用replace函數&#xff1a; replace函數可以替換字符串中的指定字符或子字符串。它的用法如下&#xff1a; string str "Hello World"; str.replace(str.find("World&qu…

Nginx03-動態資源和LNMP介紹與實驗、自動索引模塊、基礎認證模塊、狀態模塊

目錄 寫在前面Nginx03案例1 模擬視頻下載網站自動索引autoindex基礎認證auth_basic模塊狀態stub_status模塊模塊小結 案例2 動態網站&#xff08;部署php代碼&#xff09;概述常見的動態網站的架構LNMP架構流程數據庫Mariadb安裝安全配置基本操作 PHP安裝php修改配置文件 Nginx…

AI做的2024年高考數學試卷,答案對嗎?

2024年高考數學考試已經結束&#xff0c;現在呈上數學真題及AI給出的解答。供各位看官欣賞。 總的來說&#xff0c;人工做題兩小時&#xff0c;AI解答兩分鐘。 但是&#xff0c;AI做的答案是否正確&#xff0c;那就要各位看官來評判了&#xff01; 注&#xff1a;試卷來源于…

【Linux】另一種基于rpm安裝yum的方式

之前的163的鏡像源504網關異常了&#xff0c;網上找到的方法基本都是基于apt&#xff0c;或是基于apt-get。找到了大佬幫忙裝了一下&#xff0c;記錄如下&#xff1a; wget https://vault.centos.org/7.9.2009/os/x86_64/Packages/yum-metadata-parser-1.1.4-10.el7.x86_64.rpm…