Apache解析漏洞+织梦变量覆盖笔记

Apache解析漏洞+变量覆盖漏洞

apache.png


  • Apache解析漏洞

Apache解析漏洞跟IIS不一样,Apache的文件解析漏洞主要与用户的配置有密切关系,配置不当造成的。
环境要求:
Apache+php(使用module方式结合) 此处无论是windows情况下还是lunix都一样

  • Apache与php结合的三种方式

1.CGI:共同网关接口,是HTTP服务器与机器上其他程序进行通信的一个借口,让WEb服务器必要时启动额外的程序处理动态内容。
2.FastCGI:CGI解释器的更快实现,可以提供良好的性能、伸缩性、Fail-Over特性等
3.Module:把PHP编译为Apache模块,也是用的最多的一种方法(此文使用的就是这个方法)

  • 查看Apache和PHP的结合方法:

/usr/sbin/apachectl -M | grep php


Apache认为一个文件可以拥有多个扩展名,哪怕没有文件名,也可以拥有多个扩展名。Apache认为应该从右到左开始判断解析方法的。如果最右侧的扩展名为不可识别的,就继续往左判断,直到判断到文件名为止。
例如:shell.php.aa.bb.x
此处apache会对此文件类型判断为php

  • 解析漏洞的产生:

由于运维人员在配置服务器时,为了使Apache能够解析PHP,而自己添加了一个handler。
AddHandler application/x-httpd-php .php
apache.png

  • 漏洞的解决:

改用fastcgi使php与apache结合(解析漏洞依然存在 但会报500)
运维人员正确配置文件,不要偷懒乱配置,要注意权限和范围的问题。这里就是不要使用AddHandler,改用SetHandler,写好正则,就不会有问题。

web01.png

  • 当fastcgi使php与apache结合时 测试图片文件是否正常显示

web02.png


  • 变量覆盖漏洞
  • 变量覆盖的产生:

当register_globals为on时变量覆盖漏洞最为严重。
当register_globals为on时传递过来的值会被直接的注册为全局变量直接使用,而Off的时候,我们需要到特定的数组里去得到它。

  • 简单示例代码及演示

web04.png
web03.png


  • 织梦变量覆盖漏洞到导致系统重装

织梦install/index.php.bak文件(安装织梦后才会有这个文件哦)
在上述apache解析漏洞环境下 index.php.bak会被当成php运行
再次由于此文件中存在变量覆盖漏洞 所以可通过页面进行传参从而使变量被覆盖使此界面绕过检测文件锁进行重装。

利用手法:http://www.url.com/dedecms/install/index.php.bak?insLockfile=1&step=4

web07.png

Mucn

Mucn

不管,看了我的博客就得帮忙转载,快点转载一下哦!❤️✔️

留下你的评论

快留下你的小秘密吧