SUCTF web CheckIn

记录一道SUCTF的web1
据菠萝师傅说这是他们出的签到题
我tcl

这是一道文件上传
这道题把php文件限制的死死的
试过各种方法
传不上去
理所当然地想到了图片马
但是图片马必须要有文件包含漏洞或者改文件解析漏洞才能利用
(也许是我tcl只能想到这两种方法,希望师傅们指点)

直到看到正确姿势,
原来还有这么个玩意儿!
下面来说一下这是个啥玩意儿

在PHP中有个很有趣的东西叫.user.ini,有点类似.htaccess文件,PHP会在每个目录下扫描INI文件,我们可以通过.user.ini文件来实现隐藏后门的效果

在.user.ini中可以识别PHP_INI_PERDIR和PHP_INI_USER模式的INI设置
关于PHP_INI_*一共有四种:

  • PHP_INI_USER 可在用户脚本以及.user.ini中设定

  • PHP_INI_PERDIR 可在php.ini,.htaccess或httpd.conf中设定

  • PHP_INI_SYSTEM 可在php.ini或httpd.conf中设定

  • PHP_INI_ALL 可在任何地方设定

查阅php.ini配置选项列表手册
SUCTF web CheckIn_第1张图片
发现了一个比较有意思的配置项:auto_prepend_file

auto_prepend_file

该配置项会让php文件在执行前先包含一个指定的文件,通过这个配置项,我们就可以来隐藏自己的后门

就这个玩意儿,可以在不上传php文件的情况下制造一个文件包含出来!!
惊了

先准备文件.user.ini
写入

auto_prepend_file=test.jpg

文件test.php
写入


因为这道题对文件内容进行了检测
所以使用来绕过

准备一张图片
我准备的是logo.jpg

制作图片马
使用DOS

copy logo.jpg/b+test.php/a test.jpg

把.user.ini上传
加上图片文件头绕过
SUCTF web CheckIn_第2张图片
上传图片马,这个不需要再怎么绕过了
本身就是图片,但要注意题目对文件内容 所以记得删掉文件里的

因为在上传目录下有 index.php
由于我们上传了.user.ini
现在index就有了文件包含

使用文件包含来访问一下看看
SUCTF web CheckIn_第3张图片

菜刀连接

SUCTF web CheckIn_第4张图片
为所欲为

SUCTF web CheckIn_第5张图片
SUCTF web CheckIn_第6张图片

你可能感兴趣的:(ctf)