Fork me on GitHub

CTFHub题解-技能树-Web-文件上传(.htaccess、MIME绕过、文件头检查)【二】

CTFHub题解-技能树-Web-Web工具配置-文件上传
 
 
本文记录  .htaccess、MIME绕过、文件头检查  的题解~
 
 
 
(一).htaccess
 
 
 
1.知识点
 
(1)先简单介绍一下.htaccess文件:
 
 .htaccess文件 (或者"分布式配置文件"),全称是Hypertext Access(超文本入口)。
 
  它提供了针对目录改变配置的方法, 即,在一个特定的文档目录中放置一个包含一个或多个指令的文件, 以作用于此目录及其所有子目录。
  作为用户,所能使用的命令受到限制。
  管理员可以通过Apache的AllowOverride指令来设置。
  .htaccess文件是用于apache服务器下的控制文件访问的配置文件,因此Nginx下是不会生效的
  .htaccess可以帮我们实现:网页301重定向、自定义404错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档、文件的跳转等功能。
 
 
(2).htaccess 文件上传漏洞原理:
 
  一般.htaccess可以用来留后门和针对黑名单绕过
  创建一个txt写入
   AddType application/x-httpd-php .png 
  打开另存为
  保存类型为所有文件
  让 png 解析为 php 
  还可以把png改成其他图片格式~例如jpeg、gif等等...
 
  另外,还有一个知识~(此题没用到这部分知识)
  可以在.htaccess 加入php解析规则
  类似于把文件名包含1的解析成php
 
  <FilesMatch "1">
  SetHandler application/x-httpd-php
  </FilesMatch>
 
  1.png  就会以php执行
 
 
 
2.题解
 
 
命名为: .htaccess 
 
后面是  .png ,也就说明将.png的文件当php解析
 
(当然你也可以写成.jpg等格式)
 
 
因为 .htaccess 是配置文件,所以文件名不要随意更改哦~
 
 
 
 
 
 
将hatccess.png编辑为下面的一句话木马。pass是密码,可以自定义~
 
然后上传!
 
 
 
 
这里就是我们之前传的两个文件:
 
 .hatccess和hatccess.png 
 
现在用蚁剑连接:
 
http://challenge-b5d47236d3c29c2d.sandbox.ctfhub.com:10080/upload/hatccess.png
pass 
 
 
 
 
 
 
 
 
 
 
 
 
(二)MIME绕过
 
 
 
 
 
 
 
1.知识点
 
  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
 
 
 
 
2.题解
 
 
 
 
 
 
 
 
笔者最开始上传的时候,走进了一个小误区,我直接从Headers里面去找Content-Type字段了
 
(以下是错误操作)
 
然后修改成 image/gif 
然后上传上去说文件类型不对,然后笔者就上传了 ctfmime.gif 
但是想了想,好像不对哦......
当然这样的结果就是蚁剑连不上.....
 
笔者反复试了好几次....
 
发现改错位置了........
 
大家修改的时候一定要注意呀!!!
 
在burpsuite正确改法:
 
 
 
 
为了保险起见......还是都改一遍吧......
 
 
 
http://challenge-554629b718fb3fe6.sandbox.ctfhub.com:10080/upload/ctfmime.php
pass 
 
下面那个 ctfmime.gif 就是笔者之前上传的错误操作...
MIME类型 (Content-Type) 和文件后缀这是两码事哦,千万不要像笔者这样搞混啦~
 
 
 
 
 
 
(三)文件头检查
 
 
 
 
 
 
 
1.知识点
 
 需要用到的:
(1)一个图片一句话木马
(2)burpsuite改包
(3)mime修改后缀操作传马
(4)中国蚁剑连接
 
 
 
2.题解
 
 
 
先看一下源码,发现没什么线索~
 
那就开始传一个php一句话吧~  emmm...文件格式错误.....
 
按照MIME绕过的方式呢~      emmmmm....传不上去.....
 
绕过了后缀,但是还是绕不开检测,那应该就是对文件内容检测了~
 
那我们自己做一个小一点的图片马吧~
 (尽量选择小一点的图片哦,比如qq表情或者截小一点的图就可以啦~)
 
一句话图片马命令:
 copy xx.png/b+xx.php/a xx.php 
 
 
 
 
 
dalaoddw.php:
 
 
最后面看到有一句话木马的插入哦~
 
现在就开始用 burpsuite 抓包,修改数据包啦~
 
 MIME改文件头 ~
(具体操作参照上面那道题)
 
抓到的原始包是这样的:
 
(图片越大,里面的数据(红色的数据)就越多哦~)
 
 
经过笔者反复实验, content-type 这个字段必须在这两个地方都要修改!
 
一定记得这两个地方都必须要改哦~
不然只修改任意一处,用蚁剑都会连接不成功 ( 笔者实验过程后得到的这个结果,如果有大佬知道为什么需要修改两处,请指点一下哈~
 
 
 
 
 
蚁剑连接就可以啦~
 
 
 
PS:
 
这里是笔者做了一个更小的马~
 
和之前方法一样的
 
tql.php:
 
 
 
 
这个数据就少很多了~
图片越小,数据量就越少。(emmmm...怎么感觉这是一句废话,哈哈哈
 
 
 
 
两个马都可以连的~
 
 
 
 
 
 
这样就完成啦~
 
 
 
 
 
 
 
参考资料:
 
https://baike.baidu.com/item/htaccess/1645473?fr=aladdin
https://www.fujieace.com/penetration-test/file-upload-htaccess.html
https://www.jianshu.com/p/01c1d5f05852
https://www.fujieace.com/penetration-test/file-upload-mime.html
 
 
 
 
posted @ 2020-03-17 16:40  0yst3r  阅读(4789)  评论(6编辑  收藏  举报
返回顶部