【学习笔记】文件包含漏洞--相关习题
第一关 伪协议
用代码执行命令查看目录所含文件,发现flag.php
法一
题目代码含有include,写入文件包含指令:
php://filter/read=convert.base64-encode/resource=flag.php
解码即可得到flag。
法二
法三
法二可以用php://input,则也可以用远程包含
远程包含的地址写入的后门代码:
哥斯拉连接第一张图的地址
第二关 伪协议
无回显,查看网页源代码,得到flag
第三关 日志包含
可以发现php,data都被过滤,那么我们可以使用日志包含
通过file= /var/log/nginx/access.log命令来查看日志
可以将后门代码写入UA信息中 ,抓包尝试
成功写入网络日志
第四关 session包含
命令加入自己session文件所在位置的路径
抓包
不断刷新网页和放包,找到session创建shell.php新文件的时候,即可得到flag
第五关 两次URL编码
将命令进行URL编码
二次编码
(aa是占位符)
然后查看网页源代码即可得到flag
第六关 data&http协议
<?php system('tac *.php');echo 123;?>ad 用这个代码是因为过滤+、=等,像<?php phpinfo();?>后门编码出来PD9waHAgcGhwaW5mbygpOz8+会被过滤,ad是尝试使其没有+、=等