目录

二次渲染原理

绕过方法

htaccess配置文件

.user.ini


二次渲染原理

在我们上传文件后,网站会对图片进行二次处理(格式、尺寸,保存,删除 要求等),服务器会把里面的内容进行替换更新,处理完成后,根据我们原有的图片生成一个新的图片(标准化)并放到网站对应的标签进行显示。

绕过方法

1.配合条件竞争漏洞
竞争条件是指多个线程在没有进行锁操作或者同步操作的情况下同时访问同一个共享代码,变量,文件等,运行的结果依赖于不同线程访问数据的顺序。

2.配合文件包含漏洞
将一句话木马插入到网站二次处理后的图片中,也就是将二次渲染后保留的图片和一句话木马制作成图片马,再配合文件包含漏洞解析图片马中的代码,获取webshell。

htaccess配置文件

htaccess文件是Apache服务器中的一个配置文件,只对该文件所在的目录下的文件起作用。

它负责相关目录下的网页配置。通过htaccess文件,可以帮我们实现:网页301重定向、自定义404错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能。

用途:重新解析规则绕过黑名单
原理:上传覆盖.htaccess文件,重新解析规则,将上传的图片马以脚本方式解析
具体实现:
1、上传.htaccess文件至服务器上传目录,此时apache在解析该目录下的php时将按照文件要求。只要文件名匹配到所定义的字符串,就会将该文件当作php解析。

<FilesMatch "123">
SetHandler application/x-httpd-php
</FilesMatch>

.user.ini


php.ini是php的一个全局配置文件,对整个web服务起作用;而.user.ini和.htaccess一样是目录的配置文件,.user.ini就是用户自定义的一个php.ini,我们可以利用这个文件来构造后门和隐藏后门。

php.ini是php的一个全局配置文件,对整个web服务起作用;而.user.ini和.htaccess一样是目录的配置文件,.user.ini就是用户自定义的一个php.ini,我们可以利用这个文件来构造后门和隐藏后门。

实例

php 配置项中有两个配置可以起到一些作用

auto_prepend_file = <filename>         //包含在文件头
auto_append_file = <filename>          //包含在文件尾

这两个配置项的作用相当于一个文件包含,比如

// .user.ini
auto_prepend_file = 1.jpg
// 1.jpg
<?php phpinfo();?>
// 1.php(任意php文件)

满足这三个文件在同一目录下,则相当于在1.php文件里插入了包含语句require('1.png'),进行了文件包含。

另一条配置包含在文件尾,如果遇到了 exit 语句的话就会失效。

.user.ini使用范围很广,不仅限于 Apache 服务器,同样适用于 Nginx 服务器,只要服务器启用了 fastcgi 模式 (通常非线程安全模式使用的就是 fastcgi 模式)。

局限
在.user.ini中使用这条配置也说了是在同目录下的其他.php 文件中包含配置中所指定的文件,也就是说需要该目录下存在.php 文件,通常在文件上传中,一般是专门有一个目录用来存在图片,可能小概率会存在.php 文件。

但是有时可以使用 ../ 来将文件上传到其他目录,达到一个利用的效果。

第三十二天学习笔记-web漏洞-文件上传的条件竞争、.htaccess文件与.user.ini文件使用前提、二次渲染相关推荐

  1. layui实现文件压缩上传_基于SSM框架、Layui的多文件上传、包括图片,压缩包,音频等文件(与数据库挂钩) - 爱秧博客...

    写在前面:当初为了实现一个多文件上传可是费了一番功夫,经过我日日夜夜的百度咨询,写了好几种方法,最终还是没能解决问题.我可以很负责任的告诉你,你去百度上不管你形容有多好,只要是涉及多文件,就会查到Mu ...

  2. Mac OS 使用命令(scp/sftp)将本地文件上传到远程 Linux 服务器主机或者从远程主机下载文件到本地主机

    文章目录 一.使用 scp 命令 (一)将本地的文件上传(上载/复制)到远程主机的指定目录下 (二)将本地主机的目录内容(含目录本身)上传到远程主机指定的目录下 1.将本地主机桌面上的目录 www 及 ...

  3. [sharepoint]rest api文档库文件上传,下载,拷贝,剪切,删除文件,创建文件夹,修改文件夹属性,删除文件夹,获取文档列表...

    写在前面 最近对文档库的知识点进行了整理,也就有了这篇文章,当时查找这些接口,并用在实践中,确实废了一些功夫,也为了让更多的人走更少的弯路. 系列文章 sharepoint环境安装过程中几点需要注意的 ...

  4. php多文件上传存储到表,PHP 实现一种多文件上传的方法

    搜索热词 之前在实现表单中file类型input选择多图片的时候找到一种方式 也许不是最好的但亲测可行且支持ie7以上以及chrome浏览器 在表单中使用正常多文件选择multiple属性 PHP;& ...

  5. php利用ajax文件上传,如何在PHP中利用AjaxForm实现一个文件上传功能

    如何在PHP中利用AjaxForm实现一个文件上传功能 发布时间:2020-12-18 14:52:38 来源:亿速云 阅读:94 作者:Leah 如何在PHP中利用AjaxForm实现一个文件上传功 ...

  6. 如何将镜像文件上传到服务器,通过把docker镜像保存为文件载入到别的服务器

    在我们的工作环境中,一般镜像通过上传到镜像仓库中(本地或者公共仓库),用到时下载到服务器上即可.如果服务器不能上网,又没有私有仓库,我们就需要将镜像保存为文件上传到服务器上,载入镜像即可使用. 1.保 ...

  7. 微信头像下载并上传到阿里云OSS,PHP文件上传到阿里云OSS简单代码(OSS文件上传,微信头像下载,CURL下载文件,微信头像链接过期)

    (就这么个小事,有多少公司多少项目没做到!!) 微信公众号项目,后端获取到授权用户的微信头像后,要自行下载保存,不下载的话,微信返回的头像链接会在一段时间后过期,无法访问! 下面是我写的两个简单实用方 ...

  8. Java实现多文件上传下载,kindeditor富文本保存为word文件,文件列表分页显示

    介绍 SpringBoot+Thymeleaf+Mybaits项目部分功能, 实现文件的多文件上传和下载,以及将kindeditor富文本内容保存为.doc文件 文件上传/创建后以列表形式显示,并且可 ...

  9. 文件上传到ftp服务器大小变小,ftp服务器文件上传大小设置

    ftp服务器文件上传大小设置 内容精选 换一换 文件选择上传控件,用于上传文件. Windows场景中,当把源端服务器迁移到华为云后,目的端服务器C盘的已用空间比对应源端服务器C盘的已用空间大至少1G ...

最新文章

  1. spoolsv.exe占CPU100% 的解决方法
  2. GitLab 已迁移至谷歌云平台,并表示目前运行良好
  3. 【Linux 内核】进程管理 task_struct 结构体 ④ ( comm 字段 | 进程优先级字段 | cpus_ptr 字段 | mm、active_mm 字段 | fs 字段 )
  4. java流实例_java流汇总以及使用实例
  5. DB2数据库报 [SQL0805N Package NULLID.SQLLD003 was not found.]
  6. MySQL的存储过程和函数简单写法
  7. Hadoop---集群安装
  8. kibana创建es索引_es 索引数据创建mapping 普通内部对象 嵌套文档 父子文档创建和查询...
  9. linux登录pg数据库密码,PostgreSQL:修改数据库用户的密码
  10. ThinkPHP5框架下载安装
  11. C语言程序设计---跟随Frank-FuckPPT
  12. 各代iphone尺寸_iPhone12大小尺寸是多少?四款iPhone12系列尺寸对比长宽高
  13. 10款iOS高效开发必备的Objective-C类库(转)
  14. Python报错UnicodeEncodeError: 'gbk' codec can't encode character '\xa9' in position 1919: illegal mult
  15. 极速office(word)怎么添加着重号
  16. 如何查看 SQL 执行频率
  17. 关于Application.DoEvents()
  18. 阅读JEECG源码,关于登录,密码加密
  19. 2021年上海市安全员C证考试试题及上海市安全员C证操作证考试
  20. 新一代云原生数据库的设计与实践

热门文章

  1. mysql一键安装脚本
  2. 在网页中插入播放器的代码
  3. swagger-ui 在Spring cloud 中Unable to infer base url. This is common when using dynamic servlet regist
  4. 何恺明2017CVPR大会上演讲PPT,ResNet
  5. 发表教育教学论文的期刊《中国教师》杂志简介及投稿须知
  6. python钉钉自动打卡怎么设置_几行python代码实现钉钉自动打卡,网友:终于告别缺勤了...
  7. 我的2017年文章汇总——Java并发篇
  8. html怎么整体水平右移,左移右移.html
  9. 中式典范 红木装修 暖意家居
  10. Linux命令——系统设置