先来看看什么是.htaccess文件php
能够看到能实现不少功能 其余的功能先无论 咱们只须要知道.htaccess文件可以设置服务器解析文件的格式 好比 设置 匹配到ddd 就用php的格式来解析shell
我这里使用的使Apache服务器 先下了一个phpstdy的集成环境apache
Apache要使.htaccess文件生效要在httpd.config 配置两个地方(百度搜的)安全
Options FollowSymLinks服务器
AllowOverride Noneide
改成:spa
Options FollowSymLinks
AllowOverride All3d
把LoadModule rewrite_module modules/mod_rewrite.so前面的注释符号#删除blog
先试试不配置 直接写.htaccess文件 这段代码的意思使匹配到文件名中含有dd的字符 就以php形式去解析get
保存到根目录下 建立一个dd.txt文件
写一个弹窗的
无语 直接就生效了 看看配置
LoadModule rewrite_module modules/mod_rewrite.so 默认开的 Options FollowSymLinks没有发现有这个,不知道是否是集成环境的缘由
既然这样的话 直接安装原始Apache试验
搞了半天才弄好php和Apache的连接 一步出错 就问题多多
开始实验 一样传.htaccess文件 建立dd.txt 没有解析
看看配置 默认关闭的 删除注释符在试
同样没解析 再改一下 Options FollowSymLinks AllowOverride None参数 一样没发现有
百度的这两种方法没用 修改了apache服务就会启动不了
直接替换全部的
解析成功
我又 将LoadModule rewrite_module modules/mod_rewrite.so 的注释加了上去发现一样解析 也就是说和 LoadModule rewrite_module modules/mod_rewrite.so 没多大关系
总结:
1..htaccess文件使用要开启apache httpd.config AllowOverride All 并且要重启服务才能生效 和LoadModule rewrite_module modules/mod_rewrite.so 不要紧
2.集成环境简单可是不安全全部的安全配置都是开启的,原始平台安装配置稍复杂可是安全系数高配置都是默认关闭的,并且通常集成环境拿到的shell基本上是最高权限
3.上传使用.htaccess文件若是碰到是黑名单处理而且是集成环境搭建的环境那就又很大的可能绕过验证getshell,不是的话就只能凭运气看站长是否开启了AllowOverride All