本次教程来自YanXia,转载请注明作者信息,博客地址http://www.535yx.cn,感谢
第一题Include
这题还是蛮简单的。打开题目,发现有一个Tip。点击进去后是这个页面
?file=flag.php
结合题目所给的意思所知,这是道文件包含题。所以我们直接一手php://filter伪协议来读取flag.php的内容
payload如下
?file=php://filter/convert.base64-encode/resource=flag.php
之后直接base64解密就好了。
第二题Exec
这题就是典型的命令执行漏洞
所以我们直接一手127.0.0.1|cat /flag 即可获得flag
再这里我想补冲一点相关知识
管道符
| (按位或) 只能执行出最后一个命令
|| (逻辑或)哪个命令对就执行哪个命令,可以同时执行
; 多个命令相互不影响
& 哪个命令对就执行哪个命令,可以同时执行
&& 只执行第一个命令。若前面命令为假则直接出错不执行后面漏洞。若只有后面命令出错,不影响前面命令执行
BackupFile
由题目得知,这题是找备份文件,与攻防世界新手那道找备份文件类似,所以我直接一手index.php.bak得到备份文件
is_numeric() 函数用于检测变量是否为数字或数字字符串。
intval() 函数用于获取变量的整数值
php会先将判断输入值是否为字符串。如果是则进入下部份判断,输入的值转换为int整数型与$str 进行对比。而转换后在第一个数字字符之后的值会被清理掉。所以我们只需要构建index.php?key=123即可得到flag