• BUUCTF做题Upload-Labs记录pass-01~pass-10


    BUUCTF做题Upload-Labs记录pass-01~pass-10

    ——

    pass-01

    前端验证后缀。
    传1.png 抓包改1.php 即可。
    请添加图片描述

    蚁剑连:http://your-ip/upload/1.php
    请添加图片描述

    ——

    pass-02

    验证content-type
    抓包注意:Content-Type: image/jpeg
    同样传1.png 抓包改1.php

    ——

    pass-03

    过滤情况:小写,删除文件名末尾点,首尾去空格
    黑名单,不允许上传.asp,.aspx,.php,.jsp后缀文件!
    请添加图片描述

    php3 ,php4 ,pht ,phtml 之类能上传成功
    上传的文件名被更改为时间戳
    利用:/upload/202207250818552340.php3,可蚁剑连接
    请添加图片描述

    条件:
    要在apache的httpd.conf中有如下配置代码:AddType application/x-httpd-php .php .phtml .phps .php5 .pht,如果不配置他是无法解析php5代码的,访问的时候就是一个空白页

    ——

    pass-04

    过滤情况:小写,删除文件名末尾点,首尾去空格,去除字符串::$DATA(上传到服务器的文件在Windows中会自动去掉::$DATA

    跟上一题比不能用php4 ,pht ,phtml 之类

    这里通过htaccess文件,可以帮我们实现:网页301重定向、自定义404错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能。

    设置当前目录所有文件都使用PHP解析,那么无论上传任何文件,只要文件内容符合PHP语言代码规范,就会被当作PHP执行。不符合则报错。

    需要上传两个文件
    一个 .htaccess文件:
    内容:

    <FilesMatch "上传的图片马的文件名">
    SetHandler application/x-httpd-php
    FilesMatch>
    
    • 1
    • 2
    • 3

    请添加图片描述

    另一个图片马 1.jpg ,就是直接把前面几题传的马后缀改为.jpg

    利用:/upload/2.jpg
    请添加图片描述

    ——

    pass-05

    过滤情况:删除文件名末尾的点,去除字符串::$DATA,首尾去空, .htaccess后缀文件也被过滤
    上传的文件名会修改为时间戳
    没有把文件名全部小写的条件了,大小写过滤:.Php

    利用:/upload/202207251044098514.Php
    请添加图片描述

    有方法说用第四关的构造后缀,但是我这里尝试似乎行不通,比如上传5.php. .
    文件名就变成了 xxx. (无后缀)

    ——

    pass-06

    过滤情况:删除文件名末尾的点,转换为小写,去除字符串::$DATA

    源码和前面相比,没有首尾去空格这条过滤。
    所以可以在后缀 php 后面加个空格 “1.php ”
    虽然能够上传成功,但是好像无法被利用,访问并没有被php解析。
    请添加图片描述

    ——

    pass-07

    过滤情况:转换为小写,去除字符串::$DATA,首尾去空
    对比前面,没有删除文件名末尾的点
    上传7.php.
    利用:/upload/7.php.
    请添加图片描述

    ——

    pass-08

    过滤情况:删除文件名末尾的点,转换为小写,首尾去空
    相比前面没有去除字符串::$DATA
    上传 8.php::$DATA
    这里是 linux ,不得行。

    ——

    pass-09

    过滤情况:删除文件名末尾的点,转换为小写,去除字符串::$DATA,首尾去空
    按网上方法传 php. .
    但是返回的文件名有问题

    Apache/2.4.38 (Debian) Server
    apache解析漏洞
    .php.jpg
    利用:/upload/2.php.jpg
    请添加图片描述

    ——

    pass-10

    str_ireplace($deny_ext,"", $file_name);
    
    • 1

    函数将匹配到的字符替换为空
    双写绕过
    上传 .pphphp
    请添加图片描述

    利用:/upload/10.php

    ——

    这些全部为黑名单绕过,而且只是验证一次,所以这些关卡全部可以用一个思路解出来,那就是.php. . 都是可以这样的,但是这就违背了创建靶场者的心思,靶场也就失去了意义,发挥不出靶场真正的作用。

  • 相关阅读:
    GitHub2022年度前100的Java面试真题&高频知识点汇总
    【正版软件】Air Explorer - 一个程序访问您的所有云服务
    微服务项目:尚融宝(50)(核心业务流程:标的管理(2))
    Web前端学习笔记6(align-items,align-content,flex-flow,flex,align-self,order)
    【C++】list的使用(上)
    Erasure-Code-擦除码-2-实现篇
    Java通达信接口如何实现获取实时股票数据?
    ClamAV 部署
    网络安全(黑客)自学
    C#开发的OpenRA游戏之属性BodyOrientation(6)
  • 原文地址:https://blog.csdn.net/Goodric/article/details/125995226