Apache(总联想到武直那个)是最常见,使用人数最多的一款web服务器软件。跨平台,多扩展,开源,用过的人都说好

Apache的漏洞主要集中在解析漏洞这一块

1.未知扩展名解析漏洞

Apache的一个有名的解析特性:一个文件可以有多个以点分隔的后缀,当最右侧后缀无法识别的时候,继续向左识别,知道识别到认识的合法后缀才进行解析

很好理解不截图了   我上传了一个名字叫lcx.php.qqq 的文件,当此特性存在的时候,一看.qqq不认识,继续解析,.php我认识,解析成php文件了。访问也是同理,比如访问phpinfo.php.qqq可成功显示phpinfo

那么哪些后缀Apache不认识?

不在mime.types当中的都不认识 (Multipurpose Internet Mail Extensions)

到安装Apache的目录下找这个文件

里面有一堆

但是这里有一个问题

当PHP与Apache的结合方式为fastcgi时,测试结果如图,不存在此解析漏洞

而PHP与Apache的结合方式为module时是存在此解析漏洞的

除了结合方式,此漏洞存在与否还与默认Apache解析方式有关,没有认识的后缀就会按照默认方式解析

这点要注意

所以可利用的点emmm......

防御的话,修改Apache配置文件 httpd.conf 禁止PHP文件的访问权限,或者改上传的文件名

2.AddHandler解析漏洞

在httpd.conf中

AddType application/x-httpd-php .jpg     (.jpg可以换成.txt什么的   将扩展名为.jpg的文件按PHP执行)

或者

AddHandler php5-script .php    (只要文件名中包含.php就会按照PHP执行)

防御:修改Apache配置文件 httpd.conf 禁止PHP文件的访问权限

要么

伪静态试试,把有什么php的文件重写吧

如图是开启了rewrite功能

新建.htaccess文件,语法网上找吧

3.CVE2017-15715

2.4.0~2.4.29版本的Apache受灾

熟悉正则的老哥都知道,$匹配输入字符串的结尾位置。如果设置了 RegExp 对象的 Multiline 属性,则 $ 也匹配 '\n'换行或 '\r'回车(要匹配 $ 字符本身,请使用 \$)

于是,在解析PHP时,例如1.php\x0a将被按照PHP后缀进行解析,导致绕过一些服务器的安全策略

例: 上传一个文件1.php ,用burp抓包, 找到上传的文件名后面加个什么东西,比如加个.变成 1.php. ,再send to repeater ,把新加的. 位置的hex十六进制编码处改成0a,再传上去

之后访问 /1.php%0A   ( %0A为换行的URL编码)即可按照PHP执行此文件

只要用正则来匹配后缀进行php解析的Apache就可能存在这个问题

也算是新时代的Apache解析漏洞,对应老版的本文第1点

防御 :避免使用这些版本的Apache,或者前面那些思路还可以利用

随便转载,请标明作者出处

最新文章

  1. echo.js 延迟加载图片控件
  2. Android开发探秘之一:创建可以点击的Button
  3. Java中数组的特性
  4. php header示例代码(推荐)
  5. jquery 三种开始写法
  6. NOIP[2015] 运输计划
  7. Spring 源码解读 推荐流程
  8. GNU C - 关于8086的内存访问机制以及内存对齐(memory alignment)
  9. 【Java Web】使用URLRewrite实现网站伪静态
  10. windbg Symbol file path
  11. python学习之路二(字符串,字典,序列和元组)
  12. Python教程(1.2)——Python交互模式
  13. 【SQL触发器】类型 FOR 、AFTER、 Instead of
  14. 剑指Offer 44. 翻转单词顺序列 (字符串)
  15. Linux 小知识翻译 - 「架构」(arch)
  16. Android开源框架Afinal第一篇——揭开圣女的面纱
  17. Angular4学习笔记(六)- Input和Output
  18. PhpDocumentor 生成文档
  19. oracle补齐日期
  20. .Net Core 部署到 CentOS7 64 位系统中的步骤

热门文章

  1. Linux下使用Ansible处理批量操作
  2. .NET 6 Preview 6 正式发布: 关注网络开发
  3. P4480 「BJWC2018」「网络流与线性规划24题」餐巾计划问题
  4. python使用笔记18--写日志
  5. Java中为什么notify()可能导致死锁,而notifyAll()则不会(针对生产者-消费者模式)
  6. 家庭账本开发day10
  7. 微信小程序云开发-数据库-用户删除数据
  8. CF404D-DP【成就达成】
  9. 第二十八篇 -- 写一个简陋的WIFI服务器界面
  10. python中进程详解