IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> PHP知识库 -> 【文件上传漏洞08】.htaccess攻击实验(基于upload-labs-4靶场) -> 正文阅读

[PHP知识库]【文件上传漏洞08】.htaccess攻击实验(基于upload-labs-4靶场)

1 Apache配置概述

1.1 全局配置文件httpd.conf

全局配置文件主要用于配置以下功能:

  • 配置prefork模块功能;
  • 配置长连接功能;
  • 配置httpd监听的套接字;
  • 配置worker模块功能;
  • 配置DSO;
  • 配置网站根目录;
  • 配置默认主页;
  • 配置访问控制;
  • 基于IP的访问控制;
  • 用户目录;
  • 日志;
  • 设置字符集;
  • 配置路径别名;
  • 配置CGI;
  • 配置虚拟主机功能;
  • 状态页面;
  • 页面压缩;
  • 基于用户的访问控制。

1.2 分布式配置文件.htaccess

  1. 背景:当我们使用apache部署一个网站代码准备部署到网上的时候,我们手中的apache的httpd.conf大家肯定都知道。这是apache的配置文件,然而我们大多数的网站都是基于云服务器来部署的,还有就是团队协作开发的时候,我们很难直接修改公共的httpd.conf,这时 .htaccess就是httpd.conf的衍生品,它起着和httpd.conf相同的作用。
  2. 概述:.htaccess是一个纯文本文件,它里面存放着Apache服务器配置相关的指令。
  3. 地位:.htaccess是Apache服务器的分布式配置文件,
  4. 作用域:该配置文件会覆盖Apache服务器的全局配置,作用域是当前目录及其子目录。
  5. 基本作用
    • URL重写、自定义错误页面
    • MIME类型配置
    • 访问权限控制等
    • 主要体现在伪静态的应用
    • 图片防盗链
    • 自定义404错误页面
    • 阻止/允许特定IP/IP段
    • 目录浏览与主页
    • 禁止访问指定文件类型
    • 文件密码保护
  6. 如何启用:首先我们找到httpd.conf,在其中进行配置:
    1. 允许重写覆盖相关配置。查找AllowOverride并启用,设置如下图,有的版本默认开启有的不是,最好检查一下。
      在这里插入图片描述
    2. 允许在httpd.conf外重写配置。在.httpd.conf文件中中查找mod_rewrite.so,设置如下图,有的版本默认开启有的不是,最好检查一下。
      在这里插入图片描述

1.3 潜在风险

  1. 如果一个WEB应用允许上传.htaccess文件,那就意味着攻击者可以更改Apache的配置,这是十分危险的。
  2. 由于配置可以被更改,也导致了.htaccess攻击想象空间巨大。

2 实验简介

2.1 实验环境

  1. 靶场:基于WAMP环境的upload-labs靶场,搭建过程可参考文章《基于WAMP环境的upload-labs漏洞测试平台搭建过程》。
  2. 攻击机:安装BurpSuite软件。

2.2 实验前准备

按之前的方法,制作一个图片马info.gif。具体制作过程请参考《服务端文件内容检测与绕过实验+图片马制作方法

3 实验一:.htaccess生成与测试

3.1 实验目的

  1. 掌握生成无名文件.htaccess的方法;
  2. 通过修改.htaccess配置控制各种文件的执行程序。

3.2 生成不带文件名的文件

  1. 新建一个名为"a.txt"的空白文件,然后把“a.txt”后缀改成“a.htaccess”的格式。
  2. 再新建一个名为"b.txt"文件,复制下面的内容:@ren "%~f1" .*
  3. 然后把"b.txt"文件后缀改成“b.bat”文本的格式。
  4. 最后把“a.htaccess”拖到b.bat文件图标上可以去掉文件名而只保留后缀,“a.htaccess”就变了“.htaccess”。

3.3 让.png以PHP程序执行

  1. 打开.htaccess文件,输入以下内容AddType application/x-httpd-php .gif
    在这里插入图片描述
  2. 将该文件复制到靶机upload文件夹下,表示分布式配置对该文件夹及其子文件夹生效。
    在这里插入图片描述
  3. 将info.gif复制到同一文件夹中,并在真实机浏览器访问该文件,可以看到文件内代码被成功执行。
    在这里插入图片描述

3.4 含有php关键字就以PHP程序执行

  1. 打开.htaccess文件,输入以下内容AddHandler php5-script php
    在这里插入图片描述
  2. 将info.gif重命名为info.php.jpg,并在真实机浏览器访问该文件,可以看到文件内代码被成功执行。
    在这里插入图片描述

3.5 让指定文件名的文件以PHP程序执行

  1. 打开.htaccess文件,输入以下内容:
<FilesMatch "aaa">
SetHandler application/x-httpd-php
</FilesMatch>

在这里插入图片描述
2. 将info.php.jpg重命名为aaa,并在真实机浏览器访问该文件,可以看到文件内代码被成功执行。
在这里插入图片描述

4 实验二:upload-labs-4靶场

  1. 测试过程:可以先测试前端JS绕过→MIME绕过→服务端后缀名绕过→文件内容绕过等。
  2. 先上传一个.htaccess,其内容如3.5节所述。可以看到上传成功。
    在这里插入图片描述
  3. 在上传一个PHP探针文件,并将文件名修改为aaa。可以看到上传成功。
    在这里插入图片描述
  4. 右键该图片,并在新标签中打开,可以看到该文件内容被成功执行。
    在这里插入图片描述

5 总结

  1. 当存在文件上传漏洞时,只要恶意代码没有被过滤,就存在被执行的危险。
  2. 掌握修改.htaccess以改变各种文件执行程序的方法。

参考文献

  1. apache配置文件httpd.conf
  2. apache的.htaccess文件作用和相关配置
  3. 在线生成.htaccess文件链接
  PHP知识库 最新文章
Laravel 下实现 Google 2fa 验证
UUCTF WP
DASCTF10月 web
XAMPP任意命令执行提升权限漏洞(CVE-2020-
[GYCTF2020]Easyphp
iwebsec靶场 代码执行关卡通关笔记
多个线程同步执行,多个线程依次执行,多个
php 没事记录下常用方法 (TP5.1)
php之jwt
2021-09-18
上一篇文章      下一篇文章      查看所有文章
加:2022-03-06 12:42:42  更:2022-03-06 12:42:55 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/13 14:43:12-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码