0x01 基础信息
1.system info:提供详细的操作系统信息,为提权做准备。
2.extension_dir:php扩展的路径
3.$_SERVER[‘HTTP_HOST’]:网站真实IP、CDN什么的都不存在的,找到真实ip,扫一扫旁站,没准就拿下几个站。
4.$_SERVER[‘DOCUMENT_ROOT’]:web根目录
5.临时文件路径
这个配置在我的phpinfo中并没有看到~据说可以向phpinfo()页面post一个shell(自己写一个上传页面),可以在_FILES[“file1”]中看到上传的临时文件,如果有个lfi,便可以直接getshell了。参考链接:http://zeroyu.xyz/2018/11/13/what-phpinfo-can-tell-we/#%E4%B8%B4%E6%97%B6%E6%96%87%E4%BB%B6%E8%B7%AF%E5%BE%84
0x02 重要配置
1.allow_url_include:远程文件包含;
2.disable_functions:表示禁用的函数名
3.asp_tags:php标签有4种形式,如果这个选项不开启的话(一般默认不开启),使用asp的标签是不会解析的。
注意:PHP7中不再含有“asp_tags”。
4.short_open_tag:允许<??>这种形式,并且<?=等价于<? echo
disable_functions:有时候我们上传了一个webshell却不能用,有很大可能是管理员做了配置,禁用了php执行系统命令的函数。
绕过的方式有这么几个:
1.黑名单绕过
百密一疏,寻找黑名单中漏掉的函数,上图中禁用的函数算是比较全的了。
比如有时候没有禁用proc_open
比如在编译php时如果加了-–enable-pcntl
选项,就可以使用pcntl_exec()来执行命令。
pcntl是linux下的一个扩展,可以支持php的多线程操作。
pcntl_exec函数的作用是在当前进程空间执行指定程序,版本要求:PHP > 4.2.0;
<?php pcntl_exec(“/bin/bash”, array(“/tmp/b4dboy.sh”));?>
2.利用扩展(如ImageMagick)绕过
参考链接:https://www.waitalone.cn/imagemagic-bypass-disable_function.html
5.enable_dl:上面说的利用扩展库绕过disable_functions,需要使用dl()并且开启这个选项
6.magic_quotes_gpc:它是用来实现addslshes()和stripslashes()这两个功能的,对SQL注入进行防御。
7.open_basedir:将用户可操作的文件限制在某目录下,但是这个限制是可以绕过的。
PHP绕过open_basedir列目录的研究:https://www.leavesongs.com/PHP/php-bypass-open-basedir-list-directory.html
php5全版本绕过open_basedir读文件脚本:https://www.leavesongs.com/bypass-open-basedir-readfile.html
绕过open_basedir读文件脚本:https://blog.csdn.net/niexinming/article/details/53146095
未完待续…