看看都有什么
1)页面包含了名为'flag.php'的文件
2)使用$_REQUEST构造了'hello'变量,$_REQUEST既能获取GET方法也能获取POST方法提交的数据
3)使用了eval函数,将'hello'的值赋给$a并打印出来,eval函数可以把字符串当作php命令执行,此处存在用户可控点
可以先使用system('ls')查看一下
发现了flag.php,cat一下
什么也没有,或许被注释掉了,ctrl+u查看源码,发现flag
第二种方法,cat是将文件内容从第一行开始显示,因此使用'cat flag.php'后,文件内容就被正向打印出来,并被当做php代码执行,因而#注释也就生效;那么我们使用'tac flag.php'将文件内容反向打印出来,代码第一行和最后一行就变成了?>和<?php,这样就不会被当做php代码执行,因此#注释不再生效
第三种方法,file() 函数可以将整个文件读入一个数组中,因此构造?hello=file('flag.php')
over!