步骤
打开所给的实验环境,发现给出代码,分析代码可知是文件包含漏洞:
其中含有两个参数:
- 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攻防世界的资料请关注脚本之家其它相关文章!
您可能感兴趣的文章:
- php常见的网络攻击及防御方法
- 全世界最小的php网页木马一枚 附PHP木马的防范方法
- PHP include任意文件或URL介绍
- PHP Include文件实例讲解
- 浅谈PHP安全防护之Web攻击