点开题目链接
提示我们要GET传参,参数为url
我们还发现是include()函数
那么题目类型为文件包含
include()函数: 包含一个文件,如错误则抛出警告
注:任何类型的文件,只要其中含有合法PHP代码,PHP就可以包含并执行;如果没有,就会以纯文本形式显示文件中的内容
我们先测试下,看有没有文件包含漏洞
测试语句
?url=/etc/passwd
发现存在本地文件包含漏洞
我们可以用burpsuite抓包,和php伪协议去执行命令查找flag
我们先了解下php://input
php://input
可以访问请求的原始数据的只读流,将post请求的数据当作php代码执行。当传入的参数
作为文件名打开时,可以将参数设为php://input,同时post想设置的文件内容,php执行时会将post内容
当作文件内容。从而导致任意代码执行。
抓包
修改请求方法,改为POST
添加语句
?url=php://input
<?php system('ls');?>
有收获
我们把刚刚抓的包丢到重放器(repeater)中
直接cat命令查看ctf_go_go_go
payload
<?php system('cat ctf_go_go_go');?>
得到flag