[CTF/网络安全] 攻防世界 easyupload 解题详析

姿势

题目描述:一名合格的黑客眼中,所有的上传点都是开发者留下的后门

在这里插入图片描述

惯例,上传一句话木马

在这里插入图片描述

回显如下:

在这里插入图片描述
也就是说文件被过滤

抓包改后缀,.php1~.php9、.htaccess均被过滤(.htaccess 文件是一个用于配置 Apache Web 服务器的配置文件。它通常位于网站根目录或特定目录中,用来为该目录及其子目录提供特定的配置指令):

在这里插入图片描述

由于后端逻辑验证多为php文件实现,故可使用fastcgi的.user.ini特性进行任意命令执行。

.user.ini文件是php.ini的补充文件,当网页访问的时候就会自动查看当前目录下是否有.user.ini,然后将其补充进php.ini,并作为cgi的启动项。其中很多功能设置了只能php.ini配置,但是还是有一些危险的功能可以被我们控制,比如auto_prepend_file。

auto_prepend_file 是 PHP 配置选项之一,用于指定一个在每个 PHP 脚本执行前自动包含的文件。

当 auto_prepend_file 配置启用后,PHP 在执行每个脚本之前会自动将指定的文件包含进来,作为脚本的一部分。这个文件可以包含一些通用的代码、函数、类或初始化操作,以便在每个脚本中都能自动执行。

因此,我们可以传入.user.ini文件,通过auto_prepend_file将含有一句话木马的文件名称包含到每个文件中。然后再上传该文件

步骤如下:

在这里插入图片描述

由于内容为qiu.jpg,故抓包后要将Content-Type(内容类型)由application/octet-stream改为image/jpg

在这里插入图片描述
放包,回显说明文件名称不对

因此重新抓包,添加图片头GIF89a

在这里插入图片描述

放包,回显文件上传成功:

在这里插入图片描述

接着新建qiu.jpg,内容如下:

在这里插入图片描述

直接上传即可:

在这里插入图片描述
查看文件上传路径:

在这里插入图片描述

自此,整个文件上传流程已完成,在执行脚本之前,程序都会执行.user.ini文件,从而包含qiu.jpg,而qiu.jpg中含有一句话木马,故我们可以使用蚁剑连接根目录。

在这里插入图片描述
得到flag:

在这里插入图片描述


总结

以上为 [CTF/网络安全] 攻防世界 easyupload 解题详析,考察文件上传及相关知识点,读者可躬身实践。

提示:只要是运用了fastcgi的服务器都能够利用该方式getshell,不论是apache或者ngnix或是其他服务器。

我是秋说,我们下次见。

猜你喜欢

转载自blog.csdn.net/2301_77485708/article/details/132025192
今日推荐