先来看看什么是.htaccess文件
可以看到能实现很多功能 其他的功能先不管 我们只需要知道.htaccess文件能够设置服务器解析文件的格式 比如 设置 匹配到ddd 就用php的格式来解析
我这里使用的使Apache服务器 先下了一个phpstdy的集成环境
Apache要使.htaccess文件生效要在httpd.config 配置两个地方(百度搜的)
Options FollowSymLinks
AllowOverride None
改为:
Options FollowSymLinks
AllowOverride All
把LoadModule rewrite_module modules/mod_rewrite.so前面的注释符号#删除
先试试不配置 直接写.htaccess文件 这段代码的意思使匹配到文件名中含有dd的字符 就以php形式去解析
保存到根目录下 创建一个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