ctf從入門到放棄 檔案包含漏洞190522

2021-09-23 08:21:30 字數 1255 閱讀 5918

檔案包含漏洞概述

在web後台開發中,程式設計師往往為了提高效率以及讓**看起來更加簡潔,會使用「包含」函式功能。 比如把一系列功能函式都寫進fuction.php中,之後當某個檔案需要呼叫的時候就直接在檔案頭中寫上 一句<?php include fuction.php?>就可以呼叫函式**。

但有些時候,因為**功能需求,會讓前端使用者選擇需要包含的檔案(或者在前端的功能中使用 了「包含」功能),又由於開發人員沒有對要包含的這個檔案進行安全考慮,就導致攻擊著可以 通過修改包含檔案的位置來讓後台執行任意檔案(**)。

這種情況我們稱為「檔案包含漏洞」

檔案包含漏洞有「本地檔案包含漏洞」和「遠端檔案包含漏洞」兩種情況

乙個是本地,下面的是遠端。

檔案包含漏洞:包含函式

**通過 include() 或 require() 語句,可以將 php 檔案的內容插入另乙個 php 檔案(在服 務器執行它之前)。 include 和 require 語句是相同的,除了錯誤處理方面: •require 會生成致命錯誤(e_compile_error)並停止指令碼 •include 只生成警告(e_warning),並且指令碼會繼續

test.php: <?php $color='銀色的'; $car='賓士轎車'; ?>

index.html:

<?php include 『test.php'; echo "我有一輛" . $color . $car "。"; ?>

** 有漏洞的情況:

開發的沒給輸入的加上白名單或者是限制。

結果:把攻擊**也弄上去了。

本地,就是直接去弄他的源**,

遠端,就是自己把自己寫的弄進去。

遠端危害更大,

因為自己寫的攻擊**極具攻擊性。

遠端檔案包含漏洞:

**遠端檔案包含漏洞形式跟本地檔案包含漏洞差不多,在遠端包含漏洞中,攻擊著可以通過訪問外部位址 來載入遠端的**。

遠端包含漏洞前提:如果使用的incldue和require,則需要php.ini配置如下(php5.4.34): allow_url_fopen = on //預設開啟 allow_url_include=on //預設關閉

kmp從入門到放棄

標籤 kmp 擴充套件kmp 給你兩個字串,你需要回答,b串是否是a串的子串 a串是否包含b串 a aaaaaaaaaaaaaaaaaaaaaaaaaab b aaaaaaaab 最壞狀態 o mn 一般做法 for 列舉b在a串中的起始位置 for 向後比較ab是否相等 o n m 傳說中的kmp...

beego 從入門到放棄

beego 的專案基本都是通過 bee命令來建立的,所以在建立專案之前確保你已經安裝了 bee 工具和 beego。如果你還沒有安裝,那麼請查閱 beego 的安裝 和 bee 工具的安裝 現在一切就緒我們就可以開始建立專案了,開啟終端,進入 gopath src 所在的目錄 建立乙個專案名為201...

Flutter從入門到放棄

本篇主要記錄下flutter的學習路線。一 認識flutter 可以檢視這些文章 二 dart語言 1 認識dart語言 2 學習 從2018.02開始出現dart2,屬於強型別語言。介紹位址參考 三 開始flutter 網上也有很多部落格介紹了flutter怎麼安裝,但大多介紹不全,第一次安裝難免...