分析:
<?php show_source(__FILE__); echo $_GET['hello']; $page=$_GET['page']; while (strstr($page, "php://")) { //查找“php://“在$page中是否存在,存在则进入循环 $page=str_replace("php://", "", $page); //把$page中的"php://"换成空,而且该函数区分大小写 } include($page); /*当要包含的文件不存在时,include产生一个警告(Warning) ,该语句后面的程序会继续执行;而 require则导致一个致命错误(Fatal error),程序就此终止。 ?> */代码含义为,如果$page中存在php://,就将其替换为空. 即过滤page参数传入php://
方法一:大小写绕过:
由于strstr()函数区分大小写,所以可以post提交大小写替换后的PHP:// 总结:str ()是一种安全性很差的函数
方法二:御剑+木马+蚁剑 先用御剑扫出来后台管理系统 使用bp工具爆破 可得账户名root密码为空进入后台管理系统 查询是否能写入shell
插入一句话:
使用蚁剑 直接打开
三。直接查看,找到的大佬做法
参考:一句话木马:https://blog.csdn.net/weixin_39190897/article/details/86772765