Apache渗透总结

admin 2023年5月14日23:39:39评论29 views字数 3963阅读13分12秒阅读模式

Apache

Apache的简介

Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩充,将 Perl/Python等解释器编译到服务器中

这边我用phpstudy进行安装

Apache的原理

一次完整的WEB请求流程

Apache渗透总结

从request开始,到response结束

是一次Apache和PHP配合的一次WEB请求,Apache在前,PHP在后

Apache本身是不支持PHP解析的,是通过SAPI进行通信,那 Apache如何和SAP通信呢?Apache怎么知道什么类型的文件要解析为PHP?


#
加载php5_module模块
LoadModule php5_module php5apache2_2.dll的路径

#
添加可以执行php的文件类型,让.php文件类型解析为PHP 
AddType application/x-httpd-php.php

#
或者将 AddType变为下面的(在 Apache2.4.0~2.4.29中默认使用了该方式)
<FiLesMatch .php$>
 SetHandler application/x-httpd-php
</FiLesMatch>
以及
<IfModule dir_module
DirectoryIndex index.html index.html index.php index.phtml
</IfModule>

Apache通过 LoadModule来加载php5_module模块( php5apache2_2.dll)

这样做的目的是让Apache加载php5_module模块来解析PHP文件。

意思其实就是用 LoadModule来加载php5_module。也就是把php作为 Apache的一个子模块来运行。当通过Web访问php文件时,Apache就会调用php5_module来解析php代码

调用过程概况

HTTP->Apahce->php5_module->sapi->php

Apache的目录结构

Apache渗透总结


bin------------存放常用的命令工具,例如httpd 
cgi-bin--------存放 Linux下常用的命令,例如xxx.sh 
conf-----------Linux的配置相关文件,例如httpd..conf 
error----------错误记录
htdocs---------放网站源码
icons----------网站图标
logs-----------日志
manual---------手册
modules--------扩展模块

Apche对文件名扩展名的定义

Apache渗透总结


Apache渗透总结

Apache渗透总结

它是不可以解析php的!!!

Apache的解析漏洞(CVE-2017-15715)

搞一张图片 搞一个未知的扩展名

Apache渗透总结


然后我们访问一下

Apache渗透总结


Apache渗透总结

这里它不是apache解析的php文件

是php解析的

继续提升版本

Apache渗透总结

要安装一个这个vc11-86

Apache渗透总结


php常见运行方式有 apache的模块模式(分为mod_php和mod_cgi)cgi模式fast-cgi模式

1.使用 module模式与php结合的所有版本 apache存在未知扩展名解析漏洞
2.使用 fastcgi模式与php结合的所有版本 apache不存在此漏洞。
3.并且,想利用此漏洞必须保证文件扩展名中至少带有一个`.php`,否则将默认被作为`txt/html`文档处理

然后访问一下 可以看到是fast-cgi模式

Apache渗透总结

我们访问phpinfo.php.xxx会报500的错误

Apache渗透总结

kali操作

kali是自带apache的

Apache渗透总结

进行配置一下就可以了

开启apache服务

/etc/init.d/apache2 start

访问一下 成功开启

Apache渗透总结


php的版本

Apache渗透总结


kali下apache默认的网站根目录:

/var/www/html

写一个phpinfo的2.php文件

/var/www/html

写一个phpinfo的2.php文件

Apache渗透总结


访问一下

Apache渗透总结


深入解析一下

去这个目录下


/etc/apache2/mods-enabled

Apache渗透总结

我们打开分析一下

Apache渗透总结

<FilesMatch ".+.ph(ar|p|tml)$">

以 phar, php, phtml结尾的文件会被 apache当做php解析

apache解析漏洞的根本原因就是这个$

Apache渗透总结


当我们把$换成.

Apache渗透总结


搞一个2.php.xxx

Apache渗透总结



重启一下apache服务

service apache2 restart

访问一下 成功解析了

Apache渗透总结

总结利用条件

  • 1.使用 module模式,且正则符合条件
  • 2.文件扩展名中至少带有一个.php


Apache HTTPD换行解析漏洞

漏洞原理

上传一个后缀末尾包含换行符的文件,来绕过 FilesMatch。

绕过 FilesMatch不一定能被PHP解析这个漏洞可以用来绕过文件上传黑名单限制

举例:

a001.phpx0a-->a001.php

该漏洞属于用户配置不当

影响版本 apache :2.4.0~2.4.29版本

漏洞复现 Kail的Apache的版本不符合

我这边上Ubuntu进行复现

Apache渗透总结

Ubuntu安装docker命令↳


sudo apt-get update 

 sudo apt install curl 

 curl -s https://get.docker.com/ | sh

 sudo apt install python 
 
 curl https://bootstrap.pypa.io/pip/2.7/get-pip.py --output get-pip.py
 
 sudo python get-pip.py
 
 pip install docker-compose 
 
 sudo apt install docker-compose
 
 docker-compose -v
 
 docker -v
 
 sudo service docker start 启动docker


Apache渗透总结

安装完成 那么 开始安装vulhub


sudo apt install gitgit clone https://github.com/vulhub/vulhub.git

开启环境

cd vulhub/httpd/CVE-2017-15715/ 

sudo docker-compose build 

sudo docker-compose up -d 

docker ps

访问


http://192.168.175.179:8080/

Apache渗透总结

部署成功了

开始上传

直接上传phpinfo.php 是失败的

Apache渗透总结

Apache渗透总结


抓包进行修改



Apache渗透总结

Apache渗透总结


去看看Hex

Apache渗透总结


.的Hex-->2e

Apache渗透总结


改成0a 成功上传

然后我们进行访问

http://192.168.175.179:8080/phpinfo.php%0a

Apache渗透总结

成功上传并解析


分析原因


Apache渗透总结

后台是通过黑名单方式过滤了php后缀的文件,根据最开始的知识,什么样的文件算是php文件呢?在有定义,这句话的意思是以php结尾的文件都算php文件,在正则中表示匹配输入字符串的结尾位置。如果设置了 RegExp对象的 Multiline属性,则也匹配n或r 恰好,我们在文件末尾加了0x0a(n),所以被匹配成功了。

0x0a和0x0d

1.0x0d r CR这三者代表是回车,是同一个东西,回车的作用只是移动光标至该行的起始位置
2.0x0a n CL这三者代表换行,是同一个东西,换行至下一行行首起始位置

修复建议

1.升级到最新版本

2.或将上传的文件重命名为为时间戳+随机数+.jpg的格式并禁用上传文件目录执行脚本权限

Apache SsI远程命令执行漏洞

影响版本

Apache全版本(支持SS与cG)

漏洞危害

绕过服务器策略,上传 webshell

漏洞原理

ssi:是放置在HTML页面中的指令,它可以将动态生成的内容添加到现有的HTML页面,而不必通过CGI程序或其他动态技术来提供整个页面。以上是定义采用在 Apache官网对SS的定义

简单来讲,就是ssi可以在HTML中加入特定的指令,也可以引入其他的页面。

开启ssi需要单独配置 Apache,可以参考ssi配置

https://httpd.apache.org/docs/2.4/howto/ssi.html

总结呢,就是:ssi.html也可以执行命令

创建a001.shtml 写入如下命令 进行上传

包含ssi指令的文件

<pre>
<!--#exec cmd="whoami" -->
</pre>

漏洞复现

同样是用vulhub进行启动


sudo docker-compose up -d

访问一下

Apache渗透总结

写入ssi指令的文件


<pre>
<!--#exec cmd="whoami" -->
</pre>

文件名保存为a001.shtml,这个后缀取决于 Apache的配置,默认是此后缀

Apache渗透总结

访问一下

Apache渗透总结


这里的思路 比如上传webshell 或者拿反弹shell都是可以的


福利视频

笔者自己录制的一套php视频教程(适合0基础的),感兴趣的童鞋可以看看,基础视频总共约200多集,目前已经录制完毕,后续还有更多视频出品

https://space.bilibili.com/177546377/channel/seriesdetail?sid=2949374

技术交流

技术交流请加笔者微信:richardo1o1 (暗号:growing)


Apache渗透总结如果你是一个长期主义者,欢迎加入我的知识星球(优先查看这个链接,里面可能还有优惠券),我们一起往前走,每日都会更新,精细化运营,微信识别二维码付费即可加入,如不满意,72 小时内可在 App 内无条件自助退款

Apache渗透总结


往期回顾

2022年度精选文章

dom-xss精选文章

Nuclei权威指南-如何躺赚

漏洞赏金猎人系列-如何测试设置功能IV

漏洞赏金猎人系列-如何测试注册功能以及相关Tips


原文始发于微信公众号(迪哥讲事):Apache渗透总结

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年5月14日23:39:39
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Apache渗透总结https://cn-sec.com/archives/1732679.html

发表评论

匿名网友 填写信息