攻防世界之warmup
題目:
WP:
只有一張沒顯示好的圖片,右鍵檢視原始碼
提示source.php,訪問該頁面
接下來進行程式碼審計
<?php
highlight_file(__FILE__);
class emmm
{
public static function checkFile(&$page)
{
$whitelist = ["source"=>"source.php","hint"=>"hint.php"];
if (! isset($page) || !is_string($page)) {
echo "you can't see it";
return false;
}//page一定不能為空,且為字串
if (in_array($page, $whitelist)) {
return true;
}//此處若在白名單內,則直接返回true
$_page = mb_substr(
$page,
0,
mb_strpos($page . '?', '?')
);//找到page第一次出現?的位置,擷取page第一個問號前的部分
if (in_array($_page, $whitelist)) {
return true;
}
$_page = urldecode($page);
$_page = mb_substr(
$_page,
0,
mb_strpos($_page . '?', '?')
);
if (in_array($_page, $whitelist)) {
return true;
}
echo "you can't see it";
return false;
}
}
if (! empty($_REQUEST['file'])
&& is_string($_REQUEST['file'])
&& emmm::checkFile($_REQUEST['file'])
) {
include $_REQUEST['file'];
exit;
} else {
echo "<br><img src=\"https://i.loli.net/2018/11/01/5bdb0d93dc794.jpg\" />";
}
?>
mb_substr():mb_substr ( string $str , int $start [, int $length = NULL
[, string $encoding = mb_internal_encoding() ]] ) : string
mb_strpos :mb_strpos (haystack ,needle )//找到一個字串在另一個字串中出現的位置
發現還有個白名單中可以將file設為hint.php
提示我們檔案在 ffffllllaaaagggg中,但為了繞過白名單的過濾
我們準備在擷取第一個問號出現前的部分這段之前就返回true,所以file=hint.php或者file=source.php,帶上引數…/…/…/…/…/…/…/ffffllllaaaagggg,include裡面將忽視/前面的內容,直接解析ffffllllaaaagggg
找到flag啦~
相關文章
- 【攻防世界】warmup
- 攻防世界之NaNNaNNaNNaN-BatmanNaNBAT
- 攻防世界
- 攻防世界web高手進階之blgdelWeb
- 攻防世界-enc
- 攻防世界-baigeiRSAAI
- 攻防世界-easyupload
- 攻防世界-OldDriver
- 攻防世界-easychallenge
- 攻防世界Misc
- 【攻防世界】BadProgrammer
- 攻防世界 easyphpPHP
- MISC——攻防世界
- 攻防世界-你猜猜
- Reverse 攻防世界合集
- 攻防世界-mfc逆向
- hackme 【攻防世界】Reverse
- 攻防世界新手區
- 攻防世界-best_rsa
- 攻防世界-baigeiRSA2AI
- 攻防世界-Easy_Crypto
- 攻防世界-Easy_ECC
- 攻防世界-easy_RSA
- 【攻防世界】ezbypass-cat
- 【攻防世界】ez_curl
- 【攻防世界】wife_wife
- 【攻防世界】catcat-new
- 攻防世界pwn題:Recho
- 攻防世界-web2Web
- 攻防世界php2PHP
- 攻防世界-轉輪機加密加密
- 攻防世界-柵欄密碼密碼
- [HCTF 2018]WarmUp
- Warmup小記
- 攻防世界-不僅僅是RSA
- 攻防世界-簡單的圖片
- 攻防世界 Replace Reverse二星題
- 攻防世界web題ics-06Web