打开所给的实验环境,发现给出代码,分析代码可知是文件包含漏洞:
其中含有两个参数:
hello参数中的内容会被输出到页面
page参数中的内容则会被进行文件包含,但是会对php://
进行过滤
两个函数:
strstr(string,search[,before_search]):strstr() 函数搜索字符串(search)在另一字符串(string)中是否存在,如果是,返回该字符串及剩余部分,否则返回 FALSE。区分大小写,stristr()函数不区分大小写。
string
:必需。规定被搜索的字符串。
search
:必需。规定要搜索的字符串。如果该参数是数字,则搜索匹配该数字对应的 ASCII 值的字符。
before_search
:可选。一个默认值为 “false” 的布尔值。如果设置为 “true”,它将返回 search 参数第一次出现之前的字符串部分。
str_replace(find,replace,string,count):这个函数是用来替换字符串的
find
:要查的字符串。
string
:原始字符串
绕过方式:
使用大小写绕过的方式:PhP://
这里我们使用伪协议phP://input
php://input是个可以访问请求的原始数据的只读流。可以读取post提交的数据
我们在post提交的内容中写入命令执行(反引号)的php代码:
得到三个文件,发现通过浏览器打不开:
使用cat命令来查看:
查看第一个文件发现flag!
知识点本题考查了php文件包含漏洞以及OS 命令注入
以上就是web php include攻防世界解决示例的详细内容,更多关于web php include攻防世界的资料请关注软件开发网其它相关文章!