【文件上传.htaccess重定解析规则】phpstudy apache本地配置.htaccess进行url重写

.htaccess配置文件介绍:

是Apache服务器中的一个配置文件,负责相关目录下的网页配置,能够实现:网页301重定向、自定义404错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能。
     Unix、Linux系统或任何版本的Apache Web服务器都是支持.htaccess的,但是有的主机服务商不允许自定义自己的.htaccess文件。

 

理解:

将.htaccess文件上传到一个特定的文档目录中,在.htaccess中放置一个或多个指令文件, 在此目录及其所有子目录都将受此指令的影响,从而能实现上传文件以其他方式执行,即上传漏洞。

打开配置:

如果LoadModule rewrite_module modules/mod_rewrite.so前面有#就将#去掉就打开了rewrite功能模块(我这个也是打开的)

点击vhost.conf: AllowOverride None, 改为 AllowOverride All 

 (我这个是All)

 

运用:

第一步:上传.htaccess文件重写解析规则绕过黑名单:

 实现:上传.htaccess文件到指定的目录,重写当前目录下的解析规则,上传图片马,打开图片马所在位置将以新指定的方式解析运行

phpstudy官网给出的.htaccess文件运用:

# 启动rewrite引擎
RewriteEngine on
# 将index.html 映射到 index.php
RewriteRule ^index.html$ /index.php
ThinkPHP5.1的.htaccess
<IfModule mod_rewrite.c>
  # 符号链接,也称为符号链接或软链接, 最类似于Windows快捷方式, 没它可能403错误
  Options +FollowSymlinks -Multiviews
  RewriteEngine On
  # 如果不是目录, 如果不是文件, 才将URL交给下一条规则处理
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
</IfModule>

当我们在浏览器地址栏输入 index.html文件目录是, 实际上访问的是动态页面index.php

 

 一般实际过程中我们用到的.htaccess文件一般是以下情况:

第一种:

#在当前目录下,所有文件都会被解析成php代码执行

<IfModule >

setHandler application/x-httpd-php

</IfModule >

第二种:

仅xxx.png(指定文件)文件被解析PHP代码执行

这个指定文件可以是任何允许上传的文件

然后在里面写入代码

<FilesMatch "xxx.png">
setHandler application/x-httpd-php  
</FilesMatch> 

第二步:上传写入了执行语句的可上传文件

 

 第三步:一般是用蚁剑或者是菜刀进行连接

 

缺陷:

性能:

如果AllowOverride启用了.htaccess文件会导致性能的下降:

①Apache需要在所有上级目录中查找.htaccess配置文件,使所有有效的指令都起作用

②对于每一个请求,都需要读取一次.htaccess文件

例:

如果请求/a/b/www中的页面,Apache必须查找以下文件:
/.htaccess、/a/.htaccess、/a/b/.htaccess、/a/b/www/.htaccess

安全:

如果允许用户修改服务器的配置,有不可避免的文件篡改

如果给予用户较少的特权而不能满足其需要,则会带来额外的技术支持请求

.htaccess文件是用于配置Apache服务器的重要文件之一,它可以用来设置网站的URL重写规则、密码保护目录、自定义错误页面等功能。对于使用PHPStudy的用户来说,可以通过.htaccess文件来配置网站的访问权限、URL美化等。 以下是一些.htaccess文件的常见用法示例: 1. URL重写规则:可以使用RewriteEngine指令开启URL重写功能,并使用RewriteRule指令来定义重写规则,将URL转发到指定的脚本或页面。 ``` RewriteEngine On RewriteRule ^/example/(.*)$ /example.php?param=$1 [NC,L] ``` 上面的规则将把URL中的/example/后面的内容作为参数传递给example.php页面。 2. 密码保护目录:可以使用AuthType和AuthUserFile指令来设置目录的访问权限,只有提供正确的用户名和密码才能访问该目录。 ``` AuthType Basic AuthName "Restricted Area" AuthUserFile /path/to/.htpasswd Require valid-user ``` 上面的示例将设置目录的访问权限,并使用.htpasswd文件中的用户名和密码进行验证。 3. 自定义错误页面:可以使用ErrorDocument指令来定义自定义的错误页面,当服务器返回特定的HTTP错误码时,将显示指定的错误页面。 ``` ErrorDocument 404 /errors/404.html ``` 上面的示例将在发生404错误时,显示/errors/404.html页面。 请注意,使用.htaccess文件需要确保服务器已启用相应的模块(如mod_rewrite),并且允许.htaccess文件的使用。同时,对于PHPStudy的用户来说,还需要确认Apache服务器的配置中允许覆盖指令(AllowOverride)设置为All。 希望以上信息对你有帮助!如果你还有其他问题,请继续提问。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

黑色地带(崛起)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值