DVWA File Inclusion——Writeup

文件包含:
即File Inclusion,意思是文件包含(漏洞),是指當服務器開啟allow_url_include選項時,就可以通過php的某些特性函數(include(),require()和include_once(),require_once())利用url去動態包含文件,此時如果沒有對文件來源進行嚴格審查,就會導致任意文件讀取或者任意命令執行。文件包含漏洞分為本地文件包含漏洞與遠程文件包含漏洞,遠程文件包含漏洞是因為開啟了php配置中的allow_url_fopen選項(選項開啟之后,服務器允許包含一個遠程的文件)。服務器通過php的特性(函數)去包含任意文件時,由于要包含的這個文件來源過濾不嚴,從而可以去包含一個惡意文件,而我們可以構造這個惡意文件來達到自己的目的。
文件包含漏洞:
攻擊者利用了包含的特性,再加上了應用本身對文件控制不嚴,對include進來的文件不可控,最終造成了攻擊者進行任意文件包含。包含進來的文件都以當前腳本文件解析,比如,我們當前測試系統是Apache加php環境,那么被include進來的文件,不管是什么類型,比如說圖片,文本文檔,這些文件被包含以后,都會被當做php腳本來解析。

LOW

源碼:
在這里插入圖片描述

測試:本地文件包含,在目錄中加一個test.txt
在這里插入圖片描述

在這里插入圖片描述
執行成功:
在這里插入圖片描述

注意:無論文件后綴名是什么,只要文件內容為php腳本都會正確解析并且執行

漏洞利用:
實際利用需要利用文件上傳漏洞,上傳木馬,
fputs函數:為php函數,功能和fwrite函數一樣,表示創建一個新文件,這樣上傳成功以后就會在當前平臺文件所在目錄下面創建一個含有木馬的dvwainclusion.php文件


蟻劍連接,這個就很恐怖了,可以打開我電腦下所有文件
在這里插入圖片描述

medium:

源碼
在這里插入圖片描述
str_replace函數將 “http://” “https:\” “…/” “…” 替換成空
繞過 :
所有 “http://” 用 “htthttp://p://” 代替
"…/“用”…/./"代替
以此類推

遠程文件包含:
在這里插入圖片描述
后面的漏洞利用就與low操作相同了

high:

在這里插入圖片描述
High級別的代碼使用了fnmatch函數檢查page參數,要求page參數的開頭必須是file,服務器才會去包含相應的文件。
High級別的代碼規定只能包含file開頭的文件,看似安全,不幸的是我們依然可以利用file協議繞過防護策略。
使用file:///協議可以成功訪問,其余的步驟就和前面一樣了

impossible

在這里插入圖片描述
可以看到,Impossible級別的代碼使用了白名單機制進行防護,簡單粗暴,page參數必須為“include.php”、“file1.php”、“file2.php”、“file3.php”之一,徹底杜絕了文件包含漏洞。

強行總結

防御從低到高依次:
無防護無過濾
str_replace函數過濾 “http://” “https:\” “…/” “…”(str_replace 函數具有危險性,比較容易繞過,例如雙寫)
fnmatch函數檢查參數開頭
白名單限制(簡單有效)

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

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

相關文章

PyTorch JIT與TorchScript

PyTorch JIT與TorchScript 轉自:https://zhuanlan.zhihu.com/p/370455320 如果搜索 PyTorch JIT,找到的將會是「TorchScript」的文檔,那么什么是 JIT 呢?JIT 和 TorchScript 又有什么聯系? 文章只會關注概念的部分&a…

DVWA Cross Site Request Forgery (CSRF) -------WP

CSRF: 介紹 CSRF跨站點請求偽造(Cross—Site Request Forgery),跟XSS攻擊一樣,存在巨大的危害性,你可以這樣來理解: 攻擊者盜用了你的身份,以你的名義發送惡意請求,對服務器來說這個請求是完全合法的&…

PyTorch C++ API libtorch 簡介

PyTorch C API libtorch 簡介 翻譯自 PyTorch 官方文檔:https://pytorch.org/cppdocs/index.html#acknowledgements 整體劃分 根據 PyTorch 官方文檔 的介紹,PyTorch的C API可以粗略分為以下五個部分: ATen:基礎的張量和數學計…

DVWA upload

LOW medium high impossible

安裝 PyTorch C++ API libtorch 及一個最小例子

安裝 PyTorch C API libtorch 及一個最小例子 翻譯自:https://pytorch.org/cppdocs/installing.html 我們提供依賴 PyTorch 所需的所有頭文件、庫和 CMake 配置文件的二進制分發版。我們將此發行版稱為 LibTorch,您可以在我們的網站上下載包含最新 Lib…

ImageNet 1K 類別名與索引的對應關系

ImageNet 1K 類別名與索引的對應關系 轉自:http://befree2008.github.io/2018/10/05/20181005_ImageNet1000%E5%88%86%E7%B1%BB%E5%90%8D%E7%A7%B0%E5%92%8C%E7%BC%96%E5%8F%B7/ ImageNet 2012 1000個類名稱和編號。ILSVRC2012_img_train.tar 這個文件解壓出來都是…

sqlilab--writeup (5~6) 布爾盲注

1.# 和 – (有個空格)表示注釋,可以使它們后面的語句不被執行。在url中,如果是get請求**(記住是get請求,也就是我們在瀏覽器中輸入的url)** ,解釋執行的時候,url中#號是用來指導瀏覽器動作的&am…

PyTorch導出JIT模型并用C++ API libtorch調用

PyTorch導出JIT模型并用C API libtorch調用 本文將介紹如何將一個 PyTorch 模型導出為 JIT 模型并用 PyTorch 的 CAPI libtorch運行這個模型。 Step1:導出模型 首先我們進行第一步,用 Python API 來導出模型,由于本文的重點是在后面的部署…

sqli-lab--writeup(7~10)文件輸出,時間布爾盲注

前置知識點: 1、outfile是將檢索到的數據,保存到服務器的文件內: 格式:select * into outfile “文件地址” 示例: mysql> select * into outfile ‘f:/mysql/test/one’ from teacher_class; 2、文件是自動創建…

樹莓派4B (aarch64) 安裝PyTorch 1.8 的可行方案

樹莓派4B (aarch64) 安裝PyTorch 1.8 的可行方案 最終可行方案 試了一堆方案(源碼編譯、Fast.ai的安裝文件等)之后,終于找到一個可行的方案。是在 PyTorch 官方討論社區的一個帖子中找到的,在回復中一個大佬給出了自己在2021年1…

sqli-lab———writeup(11~17)

less11 用戶名提交單引號顯示sql語法錯誤,故存在sql注入 根據單引號報錯,在用戶名和密碼任意行輸入 萬能密碼:‘ or 11# 輸入后username語句為:SELECT username, password FROM users WHERE username or 11; 雙引號 password語…

深入理解Python中的全局解釋鎖GIL

深入理解Python中的全局解釋鎖GIL 轉自:https://zhuanlan.zhihu.com/p/75780308 注:本文為蝸牛學院資深講師卿淳俊老師原創,首發自公眾號https://mp.weixin.qq.com/s/TBiqbSCsjIbNIk8ATky-tg,如需轉載請私聊我處獲得授權并注明出處…

sqli-lab————Writeup(18~20)各種頭部注入

less18 基于錯誤的用戶代理,頭部POST注入 admin admin 登入成功(進不去重置數據庫) 顯示如下 有user agent參數,可能存在注入點 顯示版本號: 爆庫:User-Agent:and extractvalue(1,concat(0x7e,(select …

Python GIL

轉自:https://blog.csdn.net/weixin_41594007/article/details/79485847 Python GIL 在進行GIL講解之前,我們可以先回顧一下并行和并發的區別: 并行:多個CPU同時執行多個任務,就好像有兩個程序,這兩個程序…

sqli-lab——Writeup21~38(各種過濾繞過WAF和)

Less-21 Cookie Injection- Error Based- complex - string ( 基于錯誤的復雜的字符型Cookie注入) base64編碼,單引號,報錯型,cookie型注入。 本關和less-20相似,只是cookie的uname值經過base64編碼了。 登錄后頁面:…

Libtorch報錯:terminate called after throwing an instance of ‘c10::Error‘ what():isTensor()INTERNAL ASS

Libtorch報錯:terminate called after throwing an instance of ‘c10::Error’ what(): isTensor() INTERNAL ASSERT FAILED 報錯 問題出現在筆者想要將 yolov5 通過 PyTorch 的 C 接口 Libtorch 部署到樹莓派上。 完整報錯信息: terminate called …

sqli-lab——Writeup(38~over)堆疊等......

知識點: 1.堆疊注入原理(stacked injection) 在SQL中,分號(;)是用來表示一條sql語句的結束。試想一下我們在 ; 結束一個sql語句后繼續構造下一條語句,會不會一起執行?因此這個想法…

mysql常規使用(建立,增刪改查,視圖索引)

目錄 1.數據庫建立 2.增刪改查 3.視圖建立: 1.數據庫建立 mysql> mysql> show databases; ----------------------------------- | Database | ----------------------------------- | information_schema | | ch…

php操作mysql數據庫

phpmyadmin phpadmin是一個mysql圖形化管理工具,是一款實用php開發的mysql苦戶端軟件,基于web跨平臺的管理系統,支持簡體中文,官網:www.phpmyadmin.net可以下載免費最新版。提供圖形化操作界面,完成對mysq…

C:C++ 函數返回多個參數

C/C 函數返回多個參數 轉自:https://blog.csdn.net/onlyou2030/article/details/48174461 筆者是 Python 入門的,一直很困惑 C/C 中函數如何返回多個參數。 如果一個函數需要返回多個參數,可以采用以下兩種方法: 傳引用或指針…