攻防世界刷題記錄

2021-10-20 16:30:52 字數 2089 閱讀 7937

過濾了php://,後面有include檔案包含,這種過濾不是正則過濾,可以通過大小寫繞過

<?php 

show_source

(__file__);

echo

$_get

['hello'];

$page

=$_get

['page'];

while

(strstr

($page

,"php://"))

include

($page);

?>

由於不知道flag在哪個檔案裡面,所以先搞到目錄

得到flag

2019強網杯的隨便注,寫過就不再寫wp了

抓包爆破

**審計

<?php 

highlight_file

(__file__);

class

emmmif(

in_array

($page

,$whitelist))

$_page

=mb_substr

($page,0

,mb_strpos

($page

.'?'

, '?

') );

if (in_array($_page, $whitelist))

$_page = urldecode($page);

$_page = mb_substr(

$_page,

0,mb_strpos($_page . '

?', '?')

);if (in_array($_page, $whitelist))

echo "you can't see it";

return false;}}

if (! empty($_request

['file'])

&& is_string($_request

['file'])

&& emmm::checkfile($_request

['file'])

) else

?>

引數page被處理,會截斷?前的字串

有url解碼

$_page

=urldecode

($page

);

在hint.php裡面看到flag在ffffllllaaaagggg裡面,現在就是想辦法讓include包含到這個檔案

顯然前三個if條件跟苛刻,所以選擇最後乙個,經過了url解碼,這樣我們就可以url編碼兩次,讓伺服器收取時解碼一次,再類裡面再解碼一次,就剛剛好了,這樣就可以讓這個類返回true了

payload:?file=hint.php%253fffffllllaaaagggg果然滑稽消失了,但是flag沒有出來,就一層一層往上訪問就行了,有個小細節,ffffllllaaaagggg每個字母有四次,可以猜測再往上爬四層就行

payload:source.php?file=hint.php%253f../../../../../ffffllllaaaagggg

OI刷題記錄

2014 4 18 poj3264 bzoj1699 balanced lineup rmq 2014 4 19 bzoj1012 jsoi2008 最大數maxnumber noi2004 鬱悶的出納員 bzoj3224 tyvj 1728 普通平衡樹 2014 4 20 bzoj1862 105...

面試刷題記錄

寫一段 判斷乙個包括 的表示式是否合法 注意看樣例的合法規則。給定乙個表示式a,請返回乙個bool值,代表它是否合法。測試樣例 a b 5 4 返回 true 測試樣例 a b 5 4 返回 false include vector include iostream using namespace ...

刷題記錄 2015 11 14

現在每天做的題都記錄一下,免得不知道自己在幹什麼。poj2406 用next陣列的定義求迴圈節 poj3261 字尾陣列 題 spoj705 同上,這題我wa了幾次,結果發現 我以為字串只有大寫字母,其實有小寫。如下 poj2406 author duyixian date 2015 11 14 1...