flag:
首先根據老師上課的提示嘗試路徑不一致漏洞:
<?php
require_once
('core.php');
function
check
($path)if
(strpos
($path
,'/var/www/html/'
)!==0)
if(strpos
($path
,'..'
)!==
false
)return
false;}
if(isset
($_get
['path'])
)else
else}}
else
?>
其中有解釋:試了一下在原有url後面追加意味著在中間目錄中插入/anystring/…/會不經檢驗的直接抵消。
/6666/../flag
變成path=/var/www/html///..///..///../6666/../flag
得出報告一開頭出現的flag。
note:
然而仔細想其實這兩篇文章跟我們這個題目的邏輯實際是相互矛盾的:
上文兩篇部落格的目的都是為了在中間加入命令列而又能渾水摸魚通過file_exists函式的檢驗,使用eval執行命令,而我們這個題則是希望從file_exists
這兒卡住目錄轉而進入file_ge_contents
。
網上的部落格file_exists說的是會把url中/anystring/和/…/這一對不加檢查直接抵銷掉,但是這個題裡面從結果能繞過if分支來看是他需要就檢查出來了每一小段/anystring/目錄是否存在,而get_content那個函式只檢查最終檔案是否存在所以把/ anystring/和/…/抵消了讀出檔案,這樣來看這個題中的file_exist和php原版的file_exists檢測規則是不一樣的。有理由懷疑core.php中可能重寫了乙個file_exists,但是core.php的原始碼又尚未獲得所以可以說這個題是誤打誤撞了。
快取不一致
當程式在執行過程中,會將運算需要的資料從主存複製乙份到cpu的快取記憶體當中,那麼cpu進行計算時就可以直接從它的快取記憶體讀取資料和向其中寫入資料,當運算結束之後,再將快取記憶體中的資料重新整理到主存當中。舉個簡單的例子 i i 1。當執行緒執行這個語句時,會先從主存當中讀取i的值,然後複製乙份到...
version magic 不一致問題
碰到乙個問題,在開發過程中發現以前編譯的模組載入失敗了。wlan version magic 4.1.15 gfb2dbf6 smp preempt mod unload armv7 p2v8 should be 4.1.15 ge5de83b dirty smp preempt mod unloa...
ceph pg不一致問題
今天在公司環境中出現了pg不一致問題,通過ceph health detail命令檢視如下 pg 19.211 is active clean inconsistent,acting 88,16 pg 19.214 is active clean inconsistent,acting 59,36 ...