当前位置:   article > 正文

文件上传(入门)学习(续)_.htaccess文件上传条件

.htaccess文件上传条件

1.  .htaccess绕过

原理:

.htaccess文件是Apache服务器中的分布式配置文件(IIS中不存在该文件),该配置文件会覆盖Apache服务器的全局配置,作用于当前目录及其子目录。在httpd.conf配置文件中,AllowOverride参数就是指明Apache服务器是否去找.htacess文件作为配置文件,如果设置为none,那么服务器将忽略.htacess文件;如果设置为All,那么将启用.htaccess文件,所有在.htaccess文件里的指令都将被重写,即允许.htaccess文件覆盖掉Apache的配置。

:IIS是缩写,全称Internet Information Services ( IIS,互联网信息服务 ),是由微软公司提供的基于运行Microsoft Windows的互联网基本服务,是windows开设web网页服务的组件,用来搭载网站运行程序的平台的。还能提供FTP,SMTP等服务。

IIS常用于以下服务:

  1. 网页浏览
  2. 文件传输
  3. 新闻服务
  4. 邮件发送
  5. 其他重要未提及事项

应用:如果Web应用允许上传.htaccess文件,并且.htaccess文件可以启用,那就意味着攻击者可以更改Apache的配置,对于受害者来说这种情况是十分危险的。
.htaccess文件攻击有三种方式:

(1)如果黑名单过滤了所有的能执行的后缀名,如果允许上传.htaccess。在htaccess文件中写入                  即   当.htaccess文件的内容如下,会将内容符合php语法规则的文件当作php文件解析

(2)该文件还会匹配文件名中的关键字,如:[1.php.jpg]中包含.php,并且.htaccess文件的内容如下,[1.php.jpg]中的代码就会被执行

(3)匹配文件名,当.htaccess文件内容如下,它可以将匹配到的文件名的文件中的代码执行

upioad_labs靶场pass-04  实操

猜测肯定不简单,直接查看源码发现这里基本过滤了所有文件后缀名,判断此时应该就是需要用到.htaccess绕过了

直接编写.htaccess文件  后缀就改为.htaccess    如下

意思就是如果文件里面有一个后缀为.png的文件,他就会被解析成.php。先上传一个1.png文件,然后上传这个.htaccess,再访问1.png,即可通关。

2   .00截断

原理  :

00截断是操作系统层的漏洞,由于操作系统是C语言或汇编语言编写的,这两种语言在定义字符串时,都是以\0(即0x00)作为字符串的结尾。操作系统在识别字符串时,当读取到\0字符时,就认为读取到了一个字符串的结束符号。因此,我们可以通过修改数据包,插入\0字符的方式,达到字符串截断的目的。00截断通常用来绕过web软waf的白名单限制。

在后缀中插入一个空字符(不是空格),会导致之后的部分被丢弃,而导致绕过的发生。

如:在文件1.php.jpg中插入空字符变成:1.php.0x00.jpg中,解析后就会只剩下1.php,

而空字符插入的方法通常是使用Burp抓包后,在文件名插入一个空格,然后再HEX中找到空格对应的16进制编码“20”,把它改成00(即16进制ASCII码00,对应十进制的0),就可以插入空字符了

注:php环境00截断的条件:

1.php版本小于5.3.29                    2.magic_quotes_gpc = Off

如何使用00截断?

了解了基本原理之后,需要分析它怎么起作用,如果按照上述的做法来做,则00绕过只能绕过前端验证,因为如果是后端验证,那么即使后缀被截断了,处理之后为.php,还是会被后端验证拦截,所以不是什么情况下00截断都有用的,但是可以确定,在绕过前端验证可以用。在文件名中插入空字符进行00截断,只适合前端绕过,后端绕过无效。

实操如下

先上传一个木马,然后用BP抓包

修改抓到的数据,发送到重放器

放包再用蚁剑链接即可成功

同时还要知道文件上传的条件:
1.后缀检测,合格则进行上传路径拼接
2.拼接路径和文件名,组成文件上传路径

今天就学习到这啦,谢谢大家的观看,加油!不足之处请指教!

本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号