赞
踩
原理:
.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常用于以下服务:
应用:如果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,即可通关。
原理 :
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),就可以插入空字符了
1.php版本小于5.3.29 2.magic_quotes_gpc = Off
如何使用00截断?
了解了基本原理之后,需要分析它怎么起作用,如果按照上述的做法来做,则00绕过只能绕过前端验证,因为如果是后端验证,那么即使后缀被截断了,处理之后为.php,还是会被后端验证拦截,所以不是什么情况下00截断都有用的,但是可以确定,在绕过前端验证可以用。在文件名中插入空字符进行00截断,只适合前端绕过,后端绕过无效。
实操如下
先上传一个木马,然后用BP抓包
修改抓到的数据,发送到重放器
放包再用蚁剑链接即可成功
同时还要知道文件上传的条件:
1.后缀检测,合格则进行上传路径拼接
2.拼接路径和文件名,组成文件上传路径
今天就学习到这啦,谢谢大家的观看,加油!不足之处请指教!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。