web78
直接利用伪协议,读取flag文件得到flag, 然后再进行base64解码得到flag
web79
$str_replace()表示将$file里面的php替换为???,意味着将php过滤了,所以需要绕过,可以使用date伪协议,用base64将<?php echo phpinfo();?>编码 , 先试试看看是否命令被执行
可以发现已经被执行了,所以再使用命令执行的方法,查看一下目录 <?php system("ls ");?>
直接查看一下flag.php <?php system("cat flag.php");?>
是个空白页面,查看源代码发现有flag
web80
题目将php 和 date都给过滤了,可以使用日志包含漏洞
可以读取到它的日志文件
在User Agent 中写入一句话木马,进行命令执行
可以查看到当下文件的目录,在读取flag文件,1=system("tac fl0g.php");
得到flag
web81
多过滤了一个:号,依旧可以用包含日志的方法,跟上题解法相同,访问?file=/var/log/nginx/access.log ,再UA上写入一句话木马,进行命令执行得到flag
web88
过滤了很多,直接用date伪协议,base64编码绕过,使用命令执行得到flag (题目过滤了=号,base64编码后需要将=去掉,=不影响编码结果) <?php system("ls ");?>
可以看到当下文件目录
<?php system("tac fl0g.php");?> 得到flag