【绕过open_basedir】
一、open_basedir是什么
如果指定了open_basedir那么php脚本访问权限就会被限制在指定文件目录下,例如上图开启后就无法访问路径以外的路径 例如 /etc/passwd
如果未开启,php脚本就可以无限制访问任何目录,例如访问/etc/passwd
二、使用open_basedir限制访问目录
打开kali,这个路径是php.ini在kali的位置
打开后找到了open_basedir,默认是注释状态,未开启
然后kali主机里面有三个flag,路径分别是]
/var/www/
/var/www/html/
/var/www/html1/
这里有一个演示demo
代码会用file_get_contents去访问三处flag
那么当默认open_basedir关闭的时候,程序可以正常读取到flag
当open_basedir开启并限制目录后
位于/var/www/html/ 目录下的flag是可以正常读取出来,但是位于这个目录以外的flag无法读取直接报错,提示文件不在允许的路径下:
三、绕过open_basedir
1、system 等命令执行函数
还是同样的脚本,目前open_basedir开启状态,通过system 函数 cat 一下文本内容就出来了
open_basedir无法限制操作系统级别的函数
2、symlink 函数
mkdir('c'