和19關前面長乙個樣,肯定要**審計了,直接看原始碼。
explode(a,b)
函式以a為分割,把b轉為陣列。
reset()
函式把陣列內部指標移動到陣列第乙個元素,並返回值。
end()
把陣列內部指標移動到陣列最後乙個元素,並返回值。
count()
函式陣列元素的數量。
通過$file_name = reset($file) . '.' . $file[count($file) - 1];
可以知道最終的檔名是由陣列的第乙個和最後乙個元素拼接而成。如果是正常思維來講,無論如何都是沒有辦法繞過的,但是有個地方給了乙個提示。
這裡有個判斷,如果不是陣列,就自己拆成陣列,也就是說,我們是可以自己傳陣列進入的。如果第乙個元素是x.php/
,最後乙個元素是end()
,講道理$file[count($file)-1]
也就是最後乙個,但是為什麼不直接使用end()
呢,也就是說有特殊的情況下,這兩個東西是不等的,其實就是這樣的乙個陣列$array=([0] -> 'x.php/' [2]->'jpg')
,看下面這個測試案例就知道是什麼意思了。
測試**
"陣列總元素個數為"
.count
($file);
?>
執行結果
array([
)陣列總元素個數為2
再來分析一下$file_name = reset($file) . '.' . $file[count($file) - 1];
,按上面的測試**來看,reset($file)
肯定是x.php/
,count($file)
為2
,再減少1
,字尾就變成了$file[1]
。但是上面那個陣列裡面沒有$file[1]
啊,這裡,來列印著測試一下。
很明顯看到結果是空,也就是$file[count($file) - 1]
相當於沒有內容,那最後的檔名為x.php/.
了,這個時候就可以用19關的方法進行繞過,當然也可以利用windows的特性.
和空格
和繞過。
訪問,成功解析。
轉 A2W W2A T2A T2W 等巨集
如果你覺得使用 widechartomultibyte,multibytetowidechar 等函式比較麻煩 眾多的引數,緩衝區的分配與銷毀等。那麼可以使用 a2w w2a t2a t2w 等巨集來代替,它們對上面兩個函式進行了封裝。在使用這些巨集之前,應該包含標頭檔案 atlconv.h 並在呼...
2 基礎控制項2
transform 的預設值為 1,0,0,1,0,0 nslog nsstringfrom 可以列印其他型別的 比如類 affine transform a ffine transform 的初始化為 make make 只能改變一次 不可重複改變 如果想要重複改變 則使用去掉 make 的方法t...
什麼是P2P,O2O,B2B,B2C,C2C模式
最近網際網路行業各種to的模式搞得人暈頭轉向,我也是在這整理一下,防止在聽別人裝b的時候對答不流 p2p peer to peer 對等網路 可以簡單的定義成通過直接交換來共享計算機資源和服務,而對等計算模型應用層形成的網路通常稱為對等網路。在p2p網路環境中,成千上萬臺彼此連線的計算機都處於對等的...