本文共 2224 字,大约阅读时间需要 7 分钟。
.hatccess
文件【.htaccess
是Apache服务器的一个配置文件。它负责相关目录下的网页配置。通过htaccess
文件,可以帮我们实现:网页301
重定向、自定义404
错误页面,改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能。】 前提:mod_rewrite模块开启,配置文件中LoadMoudle rewrite_module module modules/mod_rewrite.so AllowOverride All
,配置文件中AllowOverride All
(如果可能做题过程中结果出现问题,但步骤正确,可以看看前提是否正确)htaccess
文件中的内容(或者在burp中添加): SetHander application/x-httped-php
(把所有文件解析成php
文件)或者AddType application/x-httped-php.png
(把png
文件解析为php
文件) 3. 将htaccess
文件上传后,然后再把含有一句话木马的png
文件上传,利用蚁剑连接,即可得到flag。 MIME((Multipurpose Internet Mail Extensions)
多用途互联网邮件扩展类型。
MIME
类型由两部分组成,前面是数据的大类别,例如声音 audio、图象 Image等,后面定义具体的种类。 常见的MME类型,例如: 超文本标记语言文本 .html,html text/htm
普通文本 .txt text/plain
RTF文本 .rtf application/rtf
GIF图形 .gif image/gif
JPEG图形 .jpg image/jpeg
文件头检验 是当浏览器在上传文件到服务器的时候,服务器对所上传文件的Content-Type
类型进行检测。如果是白名单允许的,则可以正常上传,否则上传失败。
原理:00截断是操作系统层的漏洞,由于操作系统是C语言或汇编语言编写的,这两种语言在定义字符串时,都是以\0(即0x00)作为字符串的结尾。操作系统在识别字符串时,当读取到\0字符时,就认为读取到了一个字符串的结束符号。因此,我们可以通过修改数据包,插入\0字符的方式,达到字符串截断的目的。00截断通常用来绕过白名单限制。攻击者可以利用手动添加字符串标识符的方式来将后面的内容进行截断,而后面的内容又可以帮助我们绕过检测。
限制条件:PHP版本<5.3.29
,且GPC
关闭【 如果magic_quotes_gpc=On
,PHP解析器就会自动为post、get、cookie
过来的数据增加转义字符“\
”,以确保这些数据不会引起程序,特别是数据库语句因为特殊字符(认为是php的字符)引起的污染而出现致命的错误 。插入后在数据库里显示的是转义前的原始数据,所以取出来不用转义在magic_quotes_gpc=On
的情况下,如果输入的数据有单引号(’)
、双引号(”)
、反斜线(\)
与 NUL(NULL 字符)
等字符都会被加上反斜线。这些转义是必须的,如果这个选项为off
,那么我们就必须调用addslashes
这个函数来为字符串增加转义。】 查看网页源码,发现只有三种文件格式允许上传,且为post传参。
对上传文件进行测试,
test.php
->上传失败 test.jpg
->上传成功 test.png
->上传成功 test.png.php
->上传失败 test.php.png
->上传成功 上传test.php
修改后缀成为 test.jpg
->上传成功 我们大致可以判断出,后端在上传时,只是通过获取上传的文件的最后的后缀,来判断是否可以上传。 上传一个含有一句话木马jpg
文件,使用burp抓包,分别在url
和文件名处添加.php%00
进行00截断处理并上传。
使用蚁剑连接1.php文件获取文件目录即可成功得到flag。
转载地址:http://qenrz.baihongyu.com/