姿势
题目描述:一名合格的黑客眼中,所有的上传点都是开发者留下的后门
惯例,上传一句话木马
回显如下:
也就是说文件被过滤
抓包改后缀,.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或是其他服务器。
我是秋说,我们下次见。
版权归原作者 秋说 所有, 如有侵权,请联系我们删除。