ctf.show WEB模块的第3关是一个文件包含漏洞,include()函数包含的文件会被执行,我们使用PHP伪协议配合抓包工具进行命令执行,从而获取flag
这一关的flag就存放在网站跟路径下的文件中
php://input 可以访问请求的原始数据,配合文件包含漏洞可以将post请求体中的内容当做文件内容执行,enctype=multipart/form-data"时,php:/input将会无效
页面中显示了部分源码,明显是引导我们利用文件包含漏洞进行操作,源码中的include()函数通过GET请求接收一个url参数,那接下来我们就给它传递一个url参数
我们使用代理软件(此处使用Burp Suite)抓包,利用php://input伪协议执行PHP代码,代码的内容为执行系统命令,查看当前目录下所有文件
?url=php://input -- GET请求的url中拼接伪协议 <?php system('ls')?> -- post请求内容构造需要执行的代码
很明显这个crf_go_go_go文件就是存放flag的文件
我们直接在url地址栏中拼接url参数,访问crf_go_go_go文件
?url=ctf_go_go_go
成功获取flag
ctfshow{f187f7ae-fffe-4631-b2e1-29dad7adc5be}
将flag全部内容复制到输入框中提交即可过关