2024年最全【Web安全】htaccess攻击_(1)

.htaccess攻击

文章目录

1. .htaccess文件

.htaccess是Apache网络服务器一个配置文件,当.htaccess文件被放置在一个通过Apache Web服务器加载的目录中,.htaccess文件会被Apache Web服务器软件检测并执行,通过.hatccess文件,可以改变Apache服务器软件的功能和特性。在这之前先了解apache中的httpd.conf文件,这是apache的配置文件,由于网站的发展来看大多数网站都是通过协同来进行的,个人很难通过修改httpd.conf来修改apache的配置特性,所以引出了.htaccess文件的概念,它有着和httpd.conf文件相同的作用。

.htaccess文件提供了针对目录的配置变换方法,这样有利于不同目录用不同的配置,即在一个特定的文档中放置一个htaccess文件以作用此目录及其所有子目录,并且可以被子目录覆盖。作为网站管理员可以限制htaccess文件的使用,方法就是将Apache中的AllowOverride设置为All,以及mod_rewrite.so(在httpd.conf文件中)

  • 允许重写覆盖相关配置:
# Deny access to the entirety of your server's filesystem. You must
# explicitly permit access to web content directories in other 
# <Directory> blocks below.
#


<Directory />
    Options +Indexes +FollowSymLinks +ExecCGI
    AllowOverride All
    Order allow,deny
    Allow from all
    Require all granted
</Directory>

  • 允许在httpd.conf外重写配置:
#LoadModule request_module modules/mod_request.so
#LoadModule reqtimeout_module modules/mod_reqtimeout.so
LoadModule rewrite_module modules/mod_rewrite.so   <--这一个
#LoadModule sed_module modules/mod_sed.so
#LoadModule session_module modules/mod_session.so

如果一个web应用允许上传htaccess文件并且允许重写,那就意味着可以更改apache的配置包括过滤操作,攻击想象面极大。

2. 常见用法

参考于[CTF].htaccess的使用技巧总结,由于是偏笔记类的博客,所以不给出太多的案例。

2.1. 自定义出错界面

使用htaccess创建自定义的出错界面,这也可以是一个URL,对于linux来说:

ErrorDocument 404 /path/to/your/error/pages/404.html  
ErrorDocument 500 /path/to/your/error/pages/500.html

但是对于windows来说我用这种方式不行,它会显示找不到我也不知道为什么,或者直接显示文件名(同一个目录),但是由于它可以是一个url所以我使用http协议,当然也可以使用目录穿越:

ErrorDocument 404 http://127.0.0.1/upload-labs-master/upload/error/error.php
ErrorDocument 404 http://127.0.0.1/upload-labs-master/upload/../upload/error/error.php

2.2. 强制文件执行方式
ForceType application/x-httpd-php
SetHandler application/x-httpd-php

这一种方式可以强制文件被哪一个解析器执行,尤其是利用修改后缀的木马文件。

AddHanlder application/x-httpd-php .htm,则.htm文件也可以执行php程序

AddType application/x-httpd-php .xxx 同上AddHandler的作用

AddType和AddHanlder同理,但是一般能上传htaccess文件的一般直接使用SetHandler了

在这里插入图片描述

2.3. PCRE绕过正则匹配

PHP利用PCRE回溯次数限制绕过某些安全限制 - FreeBuf网络安全行业门户

php_value pcre.backtrack_limit 0

简单总结一下,假如我们有一个php语句为<?php phpinfo();?>abcdef,不管什么文件后缀都会执行正则匹配

preg_match('/<\?.*[(`;?>].*/is', $data);  

其中正则匹配循环到这两个.*已经匹配完所有字符了即到达abcdef的f,但是点星后面还有字符所以会进行回溯,重点就是这个回溯操作。回溯过程就是从f开始往前匹配,如果其中有匹配[(`;?>]的就结束,这个就是点星的匹配逻辑,如果没有回溯则点星就会匹配完<?php phpinfo()?>abcdef,而不满足原来则正则表达式,所以会返回false从而实现绕过。php设定了回溯最大次数,如果我们修改这个回溯次数为0,超过最大次数就会返回false(不是0也不是1,但是正常的匹配是会返回0或1的),可以实现绕过。

但是存在非贪婪模式的正则匹配,那可以输入大量的字符在/**/注释符中,使回溯次数超过限制。

解决方案就是,使用全等号来判断返回值。

一、网安学习成长路线图

网安所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
在这里插入图片描述

二、网安视频合集

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
在这里插入图片描述

三、精品网安学习书籍

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。
在这里插入图片描述

四、网络安全源码合集+工具包

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
在这里插入图片描述

五、网络安全面试题

最后就是大家最关心的网络安全面试题板块
在这里插入图片描述在这里插入图片描述

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化资料的朋友,可以点击这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 29
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值