定义和用法
pathinfo() 函数以数组或字符串的形式返回关于文件路径的信息。
返回的数组元素如下:
语法
pathinfo(path,options)
参数
- path: 必需。规定要检查的路径。
- options 可选。规定要返回的数组元素。默认是 all。
可能的值:
- PATHINFO_DIRNAME - 只返回 dirname
- PATHINFO_BASENAME - 只返回 basename
- PATHINFO_EXTENSION - 只返回 extension
提示和注释
注释:如果不是请求所有的元素,则 pathinfo() 函数返回字符串。
PHP开启pathinfo 路由模式:pathinfo 模式 需要 PHP.ini 开启下面这个参数
cgi.fix_pathinfo=1
path_info模式:http://www.xxx.com/index.PHP/模块/方法
实例 1
rush:PHP;">
/testweb
[basename] => test.txt
[extension] => txt
)
实例 2
rush:PHP;">
rush:PHP;">
string(8)"/testweb"
string(8)"test.txt"
string(3)"txt"
应用
目录不可控没有执行权限
pathinfo,一种伪静态的用法,path_info 模式:http://www.xxx.com/index.PHP / 模块 / 方法:
sb.txt 被当成了模块,实际上请求的还是 6.PHP
一句话就执行了。
过 WAF 注入
本地安装 apache 安全狗
已知在开启 pathinfo 的情况下 (默认开启) 可以这样访问
常用注入语句被拦截
pathinfo 模式不拦截
总结
以上就是这篇文章的全部内容了,本文也算是抛砖引玉,更多用途请自测!希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。
原文地址:https://www.jb51.cc/js/42835.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。