小迪web自用筆記25

傳統文件上傳:上傳至服務器本身硬盤。

云存儲:借助云存儲oss對象存儲(只能被訪問,不可解析)

Oss云存儲

Access key與Access ID:

有了這兩個東西之后就可以操作云存儲,可以向里面發數據了。

這玩意兒泄露的話,就可以用oss瀏覽器登錄,獲取文件。

?

?

?

文件包含

如果我訪問。Upload.HTML會出現如下頁面↓

?如果我訪問Upload.PHP會顯示如下頁面↓

如果我想把功能全寫在一起,就可以來一個文件包含,在PHP中寫include Upload.HTML

然后他就會把HTML執行。

?相當于只訪問一個文件就可以實行兩個功能。

(包含過來可以調用運行,方便開發,一個文件,當幾個文件使)

比如沒有文件包含的話,我要調用文件的話那就必須全部復制粘貼過來,現在直接一行代碼解決。

?*安全問題:這東西包含誰執行誰,包含的文件受我們的控制,所以有漏洞,不可太自由。

*什么函數造成了什么漏洞,以及用戶可以控制的值,架構的特性,函數的特性。

?

?

?

?

這段是PHP代碼(文件為?filemanage.php?),用于處理文件刪除和文件下載操作:

?

- 當操作標識 ?$action? 為 ?'del'? 時:執行 ?unlink($file)?,作用是刪除變量 ?$file? 所指定的文件。

- 當操作標識 ?$action? 為 ?'down'? 時:通過設置 HTTP 響應頭(指定內容為二進制流、強制瀏覽器以“附件”形式下載、告知文件大小),再用 ?readfile($file)? 讀取并輸出文件內容,最終實現文件下載功能(不過代碼里 ?filename=""? 是空的,實際使用時需要填入具體文件名,比如原文件的名字,這樣下載時才會顯示正確的文件名)。

*所以是不是我下載的時候把數據包改成別的路徑,它就會下載別的文件(如果沒有黑名單白名單的話)

這些東西如果控制不當的話,就容易跨目錄下載跨目錄翻閱,跨目錄刪除,跨目錄編輯。等等。

任意文件漏洞。

System PHP中調用系統文件。

?

?因為這是執行命令行的命令,命令行他執行的是del? ?$file中傳的東西,Del sb.php ⅡPing 127點0.0.1,他就會同時執行兩個命令。

?還有這個檢測檢測這個是不是目錄,如果沒有做過濾的,

如果代碼中沒有 ?eval?、?include?/?require? 等執行PHP代碼的邏輯,僅通過 ?$path? 傳遞惡意內容,是無法直接注入PHP命令的。

?

原因在于:當前代碼的核心是文件管理操作(判斷文件/目錄、提取文件名、遍歷目錄等),沒有“執行動態PHP代碼”的邏輯(比如用 ?eval? 解析字符串為代碼,或用 ?include? 包含惡意文件)。

?

只有當代碼中存在 ?eval($_GET['path'])?、?include($path)? 這類“執行/包含動態代碼”的邏輯,且 ?$path? 未做安全過濾時,才可能被注入惡意PHP命令。而從當前代碼看,沒有這類風險邏輯。

?圖片中包含的實體信息是網站“DNSLog.cn”,它是一個常用于網絡安全領域的平臺,主要功能包括提供DNS查詢記錄查看等,可輔助進行漏洞檢測等相關的測試與監控工作。

?

?

?

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

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

相關文章

分發餅干——很好的解釋模板

好的,孩子,我們來玩一個“喂餅干”的游戲。 0. 問題的本質是什么? 想象一下,你就是個超棒的家長,手里有幾塊大小不一的餅干,而面前有幾個餓著肚子的小朋友。每個小朋友都有一個最小的“胃口”值&#xff0c…

場景題:如果一個大型項目,某一個時間所有的CPU的已經被占用了,導致服務不可用,我們開發人員應該如何使服務器盡快恢復正常

問:如果一個大型項目,某一個時間所有的CPU的 已經被占用了,導致服務不可用,我們開發人員 應該如何使服務器盡快恢復正常答:應對CPU 100%導致服務不可用的緊急恢復流程面試官,如果遇到這種情況,我會立即按照…

Docker 安裝 RAGFlow保姆教程

前提條件 Ubuntu 服務器(20.04 或 22.04 LTS 推薦) 已安裝 Docker 和 Docker Compose 如果尚未安裝,請先運行以下命令:# 安裝 Docker curl -fsSL https://get.docker.com -o get-docker.sh sudo sh get-docker.sh # 將當前用戶加入 docker 組,避免每次都要 sudo sudo user…

為什么實際工程里 C++ 部署深度學習模型更常見?為什么大家更愛用 TensorRT?

很多人剛接觸深度學習模型部署的時候,都會習慣用 Python,因為訓練的時候就是 PyTorch、TensorFlow 啊,寫起來方便。但一到 實際工程,特別是工業設備、醫療影像、上位機系統這種場景,你會發現大多數人都轉向了 C 部署。…

深入理解 Java 集合框架:底層原理與實戰應用

在日常開發中,集合是 Java 中使用頻率最高的工具之一。從最常見的 ArrayList、HashMap 到更復雜的并發集合,幾乎每一個 Java 程序員都離不開集合框架。集合框架不僅提供了豐富的數據結構實現,還封裝了底層復雜的邏輯,讓開發者能夠…

爬取m3u8視頻完整教程

爬取步驟:1.先找到網頁源代碼2.從網頁源代碼中拿到m3u83.下載m3u84.讀取m3u8文件,下載視頻5.合并視頻首先我們來爬取一個星辰影院的電影:下面我以這個為例:我們需要在源代碼中找到m3u8這個url:緊接著我們利用下面的方法…

Python爬蟲實戰: 基于Scrapy的Amazon跨境電商選品數據爬蟲方案

概述與設計思路 利用Python的Scrapy框架進行大規模頁面抓取和結構化數據提取,配合aiohttp實現高并發請求,從而高效獲取Amazon平臺上的商品列表、詳情、評論等公開信息。通過對這些數據進行清洗與分析,可以識別出有潛力的商品,評估市場競爭程度,并跟蹤競爭對手的動態,為跨…

穩定版IM即時通訊 仿默往APP即時通訊im源碼聊天社交源碼支持二開原生開發獨立部署 含搭建教程

內容目錄一、詳細介紹二、效果展示1.部分代碼2.效果圖展示三、學習資料下載一、詳細介紹 技術開發語言: 后臺管理端:Java GO Mysql數據庫 安卓端:Java iOS端:ob PC端:c 功能簡單介紹: 單聊&#xff…

封裝一個redis獲取并解析數據的工具類

redis獲取并解析數據工具類實現代碼使用示例實現代碼 import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.TypeReference; import lom…

23種設計模式——策略模式 (Strategy Pattern)?詳解

?作者簡介:大家好,我是 Meteors., 向往著更加簡潔高效的代碼寫法與編程方式,持續分享Java技術內容。 🍎個人主頁:Meteors.的博客 💞當前專欄:設計模式 ?特色專欄:知識分享 &#x…

CI(持續集成)、CD(持續交付/部署)、CT(持續測試)、CICD、CICT

目錄 **CI、CD、CT 詳解與關系** **1. CI(Continuous Integration,持續集成)** **2. CD(Continuous Delivery/Deployment,持續交付/部署)** **持續交付(Continuous Delivery)** **持續部署(Continuous Deployment)** **3. CT(Continuous Testing,持續測試)** **4.…

【音視頻】WebRTC ICE 模塊深度剖析

原文鏈接: https://mp.weixin.qq.com/s?__bizMzIzMjY3MjYyOA&mid2247498075&idx2&sn6021a2f60b1e7c71ce4d7af6df0b9b89&chksme893e540dfe46c56323322e780d41aec1f851925cfce8b76b3f4d5cfddaa9c7cbb03a7ae4c25&scene178&cur_album_id314699…

linux0.12 head.s代碼解析

重新設置IDT和GDT,為256個中斷門設置默認的中斷處理函數檢查A20地址線是否啟用設置數學協處理器將main函數相關的參數壓棧設置分頁機制,將頁表映射到0~16MB的物理內存上返回main函數執行 源碼詳細注釋如下: /** linux/boot/head.s** (C) 1991 Linus T…

Maven動態控制版本號秘籍:高效發包部署,版本管理不再頭疼!

作者:唐叔在學習 專欄:唐叔的Java實踐 關鍵詞:Maven版本控制、versions插件、動態版本號、持續集成、自動化部署、Java項目管理 摘要:本文介紹如何使用Maven Versions插件動態控制項目版本號和依賴組件版本號,實現無需…

簡述:普瑞時空數據建庫軟件(國土變更建庫)之一(變更預檢查部分規則)

簡述:普瑞時空數據建庫軟件(國土變更建庫)之一(變更預檢查部分規則) 主要包括三種類型:常規檢查、行政區范圍檢查、20X異常滅失檢查 本blog地址:https://blog.csdn.net/hsg77

shell中命令小工具:cut、sort、uniq,tr的使用方式

提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔 文章目錄前言一、cut —— 按列或字符截取1. 常用選項2. 示例二、sort —— 排序(默認按行首字符升序)1. 常用選項常用 sort 命令選項三、uniq —— 去…

【Linux】Linux開發必備:Git版本控制與GDB調試全指南

前言:在Linux開發流程中,版本控制與程序調試是保障項目穩定性和開發效率的兩大核心環節。Git作為當前最主流的分布式版本控制系統,能高效管理代碼迭代、追蹤修改記錄并支持多人協同開發;GDB(GNU調試器)是Li…

實現 TypeScript 內置工具類型(源碼解析與實現)

目標讀者:已經熟悉 TypeScript 基礎語法、泛型、條件類型的同學。本文按常見工具類型的分類與順序實現并解釋 Partial、Required、Readonly、Pick、Omit、Record、Exclude、Extract、NonNullable、ReturnType、Parameters、ConstructorParameters、InstanceType、Th…

Spring Boot + Nacos 配置中心示例工程

1?? 工程結構 nacos-demo├── pom.xml└── src├── main│ ├── java│ │ └── com.example.nacosdemo│ │ ├── NacosDemoApplication.java│ │ ├── config│ │ │ └── AppProperties.java│ │ └── cont…

(二)文件管理-基礎命令-pwd命令的使用

文章目錄1. 命令格式2. 基本用法3. 高級用法4. 注意事項1. 命令格式 pwd [OPTION]...[OPTION]: 可選選項,用于改變命令的默認行為。最主要的兩個選項是 -L 和 -P。它不需要任何參數(如文件名或目錄名) 2. 基本用法 用法:pwd 是…