【BUUCTF-Web 0022】[SUCTF 2019]CheckIn

Subject

UPLOAD 配置文件先走


Mind Palace

image

多半是文件上传漏洞

image

继续盲猜构造文件幻术头+AntSword连接

  • JPG :FF D8 FF E0 00 10 4A 46 49 46
  • GIF(相当于文本的GIF89a):47 49 46 38 39 61
  • PNG: 89 50 4E 47

BP抓包并修改:

image

反馈:非法的后缀 => 有过滤

image

意外的收获(其实其他的方式也尝试了许多遍;比如:.phtml ..php ..phtml php3...)

最后发现应该是后台过滤了一个.;最后加多加一个的话就刚好构成可绕过的情况

但是由于文件名在那边存储的时候变成了upload.php.似乎没办法用AntSword连接

=== 查找资料 Ing ... Done ===

制作.user.ini文件并上传

image

上传upload.gif

image

成功找到index.php文件并访问:

image

连接:

[图片上传失败...(image-1dccc4-1611673505699)]

获得flag:

image

Look Ahead

先上传配置文件改变后续上传文件的作用 => 亮点

.user.ini.htaccess用的更广,不管是nginx/apache/IIS,只要是以fastcgi运行的php都可以用这个方法。我的nginx服务器全部是fpm/fastcgi,我的IIS php5.3以上的全部用的fastcgi/cgi,我win下的apache上也用的fcgi,可谓很广,不像.htaccess有局限性

php.ini说起:php.ini是php默认的配置文件,其中包括了很多php的配置,这些配置中,又分为几种:PHP_INI_SYSTEM、PHP_INI_PERDIR、PHP_INI_ALL、PHP_INI_USER

其中就提到了,模式为PHP_INI_USER的配置项,可以在ini_set()函数中设置、注册表中设置,再就是.user.ini中设置。 这里就提到了.user.ini

除了主 php.ini之外,PHP 还会在每个目录下扫描 INI 文件,从被执行的 PHP 文件所在目录开始一直上升到 web 根目录($_SERVER['DOCUMENT_ROOT'] 所指定的)。如果被执行的 PHP 文件在 web 根目录之外,则只扫描该目录。在.user.ini风格的 INI 文件中只有具有 PHP_INI_PERDIR 和 PHP_INI_USER 模式的 INI 设置可被识别


References:

https://www.cnblogs.com/Lmg66/p/13272575.html

https://blog.csdn.net/weixin_44077544/article/details/102688564

关于.user.ini

https://wooyun.js.org/drops/user.ini%E6%96%87%E4%BB%B6%E6%9E%84%E6%88%90%E7%9A%84PHP%E5%90%8E%E9%97%A8.html

https://www.php.net/manual/zh/configuration.changes.modes.php

https://www.php.net/manual/zh/configuration.file.per-user.php

https://www.php.net/manual/zh/configuration.changes.php


END ヽ(`⌒´)ノ

你可能感兴趣的:(【BUUCTF-Web 0022】[SUCTF 2019]CheckIn)