【BUUCTF-Web】[SUCTF 2019]CheckIn

677 阅读2分钟

Subject

UPLOAD 配置文件先行


Mind Palace

多半是文件上传漏洞

继续盲猜构造文件幻术头+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抓包并修改:

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

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

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

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

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

制作.user.ini文件并上传

上传upload.gif

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

连接:

获得flag:


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:

www.cnblogs.com/Lmg66/p/132…

blog.csdn.net/weixin_4407…

关于.user.ini

wooyun.js.org/drops/user.…

www.php.net/manual/zh/c…

www.php.net/manual/zh/c…

www.php.net/manual/zh/c…


END ヽ(`⌒´)ノ