目录

.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

在这个目录中,.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

在一些php web文件上传严格的waf下,刀法精准到文件内容的每一个字符如`=<?反引号、等号、尖括号、问号时,可以考虑目标只审计了文件内容的前面部分内容,尝试通过填充大量垃圾内容绕过

参考:

最后一次更新于: 2024/11/20, 14:48:33