.user.ini .htaccess配置文件的利用
# .user.ini .htaccess配置文件利用
# .user.ini
php.ini是php的配置文件,.user.ini是用户自定义的php配置文件,.user.ini文件仅作用于他所在的文件夹及所有子文件夹
::: dangerous 利用前提,当前目录存在一个php文件 :::
- index.php
- other.php
- upload
- .user.ini
- 1.php
- files
- 3.php
- evil.png
- css
- js
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
在这个目录中,.user.ini会影响到1.php以及子目录files下的php文件3.php的行为
例如,在upload目录下存在图片马evil.png
.user.ini内容如下
auto_prepend_file=evil.png
1
访问1.php,会先包含evil.png并执行其中的php代码
# PHP中常被利用的配置项
- allow_url_fopen:是否允许从远程服务器获取文件
- allow_url_include:是否允许包含远程文件
- auto_prepend_file:在执行目标文件之前,先包含指定的文件
- auto_append_file:在执行目标文件之后,包含指定的文件
前两个可以用于文件包含,php伪协议利用。后两个用于文件上传,文件包含。
# .htaccess
.htaccess文件是apache服务器中的一个配置文件,可以控制服务器的行为
# 常利用的配置项
- AddType:添加文件类型
- AddHandler:添加文件处理器
- php_value: 设置php.ini中的值
jpg文件做为php解析
AddType application/x-httpd-php .jpg
1
所有文件作为php解析
SetHandler application/x-http-php
1
通过php_value来配置PHP的配置选项。
利用文件包含,对于文件内容进行base64编码包含
# 支持php伪协议
php_value auto_prepend_file "php://filter/convert.base64-decode/resource=./poc.jpg"
1
2
2
在一些php web文件上传严格的waf下,刀法精准到文件内容的每一个字符如`=<?反引号、等号、尖括号、问号时,可以考虑目标只审计了文件内容的前面部分内容,尝试通过填充大量垃圾内容绕过
参考:
编辑 (opens new window)
最后一次更新于: 2024/11/20, 14:48:33