Php_include
Web_php_include
源码
1 |
|
看源码,绕过两个函数拿到动态flag,一个比较简单的文件包含
先看第一个函数strstr()
1 | 1、strstr() 函数搜索一个字符串在另一个字符串中的第一次出现。如果是,返回字符串及剩余部分,否则返回false。 |
str_replace()函数
定义和用法:
以其它字符替换字符串中的一些字符(区分大小写)
语法:
1 | str_replace(find,replace,string,count) |
find,必需,要查找的值
replace,必需,要替换的值
string,必需,被搜索的字符串
count,可选,替换次数
在这个题目中,就是匹配page变量中的php://替换为空
1 | while (strstr($page, "php://")) { //查找page中的php://,若存在则返回为空 |
方法1(大小写绕过):
利用php伪协议大小写绕过
1 | ?page=PHP://input |
先get传进去
之后写命令执行
方法2(data://上传木马)
第一种链接方式:
第二种链接方式:
真的服了真个题了,那个base64编码再连蚁剑,那个密码1和a我都试了就是不行,用cxk就可以,妥妥的小黑子
大概跟base64编码有问题,以后面留长一点点,长记性
方法3(data://命令执行)
只是data://协议的其中一个用法
data://协议跟php://input类似,可以让用户来控制输入流,当他与包含函数时,用户输入的data://流会被当做PHP代码执行
构造方式跟input一样,不过变成了GET传参
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 晴川's Blog🌈!