zoukankan      html  css  js  c++  java
  • 刷题[SUCTF 2019]CheckIn

    解题思路

    打开网页发现只是简单做了一个上传界面,朴实无华

    上传一个php文件,发现非法后缀。

    上传一个.htaccess文件,发现,爆出很重要的信息

    exif_imagetype函数通过检测文件头来检测是否是规定的格式,这里我们只需构造头文件为GIF98a,内容自定的图片马,即可绕过函数限制

    上传后发现<?被禁用,使用另外的方法。

    提交后发现上传成功,路径为:uploads/adeee0c170ad4ffb110df0cde294aecd

    现在思考如何利用图片马。需要有一个文件能包含我们的图片马,或者类似的功能

    发现该路径下有index.php文件,这里有点奇怪。为什么此处会有index.php。在网上搜索其他构造php后门的方法。

    发现此篇,p神写的.user.ini.构造后门

    具体原理看p神的文章就可以了,我这里只谈如何利用

    .user.ini. 构造后门

    • 什么是.user.ini.?

    .user.ini实际上就是一个可以由用户“自定义”的php.ini,我们能够自定义的设置是模式为“PHP_INI_PERDIR 、 PHP_INI_USER”的设置。

    把他理解为通过此文件,我们可以自定义php.ini中的内容

    • 为什么能被利用?

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

    即php设定为会再每个目录下自动扫描ini文件。

    • 如何构造后门?
      .user.ini. 可以指定auto_prepend_file。此设定作用为指定一个文件,自动包含在要执行的文件前。可以理解为在文件前自动包含了设定的文件

    于是我们清晰了思路,再构造一个.user.ini.文件

    上传成功

    访问上传路径下的index.php文件,获得flag

    总结思路

    1. 确定该用什么方法上传后门,改头文件,后缀等
    2. 使用.user.ini.方法包含后门,确保其可以利用
    3. 访问后门,获取flag

    知识点

    • 文件上传相关bypass
    • .user.ini.构造后门

    参考

    p神文章

  • 相关阅读:
    从Github上将laravel项目拉到新开发环境
    Nginx-Primary script unknown的报错的解决方法
    CentOS 7 安装PHP7+Nginx+Mysql5.7开发环境
    程序员面试经常会被问到的12个问题
    IOC(控制反转)的理解
    用冒泡排序的方法将数组从小到大排列
    常用设计模式详解
    PHP常见面试题总结
    能够遍历一个文件夹下的所有文件和子文件夹的函数
    线特征---LineMatching原理(四)
  • 原文地址:https://www.cnblogs.com/karsa/p/13379378.html
Copyright © 2011-2022 走看看