zoukankan      html  css  js  c++  java
  • Upload-Labs渗透笔记

    靶机项目地址:https://github.com/c0ny1/upload-labs


    来源:https://www.cnblogs.com/joker-vip/p/12650240.html

    Pass-01

    1.直接上传php一句话,报错

     

    2.信息回显速度很快,猜想是前端验证,可以在修改前端代码,删掉checkFile()函数,或者上传jpg后缀通过burp抓包修改php后缀绕过前端验证

     

    3.上传成功

     

    4.菜刀连接成功

     

    5.分析源码

     

    Javascript前端语言定义函数,仅在前端判断文件的后缀。


    Pass-02

    1.直接上传,发现提示文件类型不正确

     

    2.抓包修改文件类型,改成image/jpeg

     

    3.改成image/jpeg

     

    4.发包,上传成功

     

    5.菜刀连接成功

     

    6.分析源码

     

    仅这条if语句判断了上传文件的类型,修改Content-Type即可绕过。


    Pass-03

    1.直接上传,提示

     

    2.猜想可能是黑名单限制,利用其它后缀名进行绕过php3、phtml

     

    3.上传成功,菜刀连接成功

     

    4.分析源码

     

    建立了个黑名单,其中的后缀都不能上传。但是其它可解析php的后缀可以上传并解析。


    Pass-04

    1.直接上传,提示

     

    2.尝试利用apache解析漏洞,apache读取后缀从右向左,若遇见不认识的后缀名便向前继续读取,直到认识的后缀。

     

    3.上传成功,连接菜刀成功

     

    4.方法二,其实这关考察的目的是 .htaccess文件,上传一个.htaccess内容如下的文件:

    SetHandler application/x-httpd-php

     

    5.这样所有文件都会解析为php,然后再上传图片马,就可以解析:

     

    6.连接菜刀成功

     

    7.分析源码

     

    这里把所有的后缀都过滤了,除了.htaccess,所以可以利用上传.htaccess规则来进行绕过,把可以上传的文件后缀解析成php。


    Pass-05

    1.直接上传,提示

     

    2.上传.htaccess失败,可能也把.htaccess给过滤了,尝试使用apache解析漏洞绕过

     

    3.连接菜刀成功

     

    4.其实这题考察的是大小写绕过,

     

    5.分析源码

     

    在上一题pass-04的基础上多了个过滤.htaccess,但是没有对后缀的大小写进行统一,这里于是可以通过大小写绕过。


    Pass-06

    1.直接上传失败,加空格绕过

     

    2.上传成功

     

    3.菜刀连接成功

     

    4.源码分析

     

    还是黑名单,但是没有对后缀名进行去空处理,可在后缀名中加空绕过。


    Pass-07

    1.尝试利用windows特性,会自动去掉后缀名中最后的 . ,抓包,在后缀加 .

     

    2.上传成功

     

    3.连接菜刀成功

     

    4.分析源码

     

    同样是黑名单,但是没有对后缀名进行去 . 处理,利用windows特性,会自动去掉后缀名中最后的 . ,可在后缀名中加 . 绕过。


    Pass-08

    1.尝试使用 ::$DATA 加在后缀之后进行绕过

     

    2.上传成功

     

    3.连接菜刀成功

     

    4.分析源码

     

    php在window的时候如果文件名+"::$DATA"会把::$DATA之后的数据当成文件流处理,不会检测后缀名.且保持"::$DATA"之前的文件名,目的就是不检查后缀名。


    Pass-09

    1.通过尝试构造,加上点空格点绕过

     

    2.上传成功

     

    3.连接菜刀成功

     

    4.分析源码

     

    还是黑名单过滤,并删掉了文件名末尾的点,路径拼接的是处理后的文件名,通过构造 点+空格+点 绕过过滤。


    Pass-10

    1.直接上传发现把后缀php替换为空

     

    2.这样可以使用双写绕过

     

    3.上传成功

     

    4.连接菜刀成功

     

    5.分析源码

     

    设置黑名单,把有问题的后缀名都替换为空,但是可以利用双写绕过。

     


     

    Pass-11

    1.直接上传,提示

     

    2.应该是用到了白名单,抓包查看,尝试使用%00截断进行绕过

     

    3.上传成功

     

    4.菜刀连接成功

     

    5.分析源码

     

    白名单机制,但是$img_path直接拼接,因此可以利用%00截断绕过。

     


     

    Pass-12

    1.上传抓包查看,可以使用00截断,php后空格十六进制的20改为00

     

    2.上传成功

     

    3.菜刀连接成功

     

    4.源码分析

     

    同样是白名单,这次的save_path是通过post传进来的,还是利用00截断,但这次需要在二进制中进行修改,因为post不会像get对%00进行自动解码

     


     

    Pass-13

    1.制作图片马,copy 1.jpg /b + shell.php /a webshell.jpg

     

    2.上传图片马

     

    3.上传成功

     

    4.分析源码

     

    通过读文件的前2个字节判断文件类型,因此直接上传图片马即可。也可以在一句话文件内容前面加图片的标识例如GIF89a。

     


     

    Pass-14

    1.同样直接上传图片马

     

    2.上传成功

     

    3.分析源码

     

    这里使用getimagesize函数获取文件类型,还是直接就可以利用图片马就可进行绕过。也可以在一句话文件前加图片标识码例如GIF89a。

     


     

    Pass-15

    1.同样可以使用图片马上传

     

    2.上传成功

     

    3.源码分析

     

    这里是用php_exif模块来判断文件类型,还是直接就可以利用图片马就可进行绕过。


    Pass-16

    1.直接上传图片马

     

    2.成功上传

     

    3.分析源码

     

    综合判断了后缀名、content-type,以及利用imagecreatefrompng

    判断是否为png图片,最后再做了一次二次渲染。

     


     

    Pass-17

    1.提示代码审计,所以先分析下源码

     

    这里先将文件上传到服务器,然后判断文件后缀是否在白名单里,如果在则重命名,否则删除,因此我们可以上传1.php只需要在它删除之前访问即可,可以利用burp的intruder模块不断上传,然后我们不断的访问刷新该地址即可。

    2.抓包转到intruder模块,进行不断上传

     

    3.在不断上传的中,不停刷新浏览器地址,即可访问到文件内容

     


    Pass-18

    1.通过代码审计,这个对文件后缀名做了白名单判断,然后会一步一步检查文件大小、文件是否存在等等,将文件上传后,对文件重新命名,同样存在条件竞争的漏洞。可以不断利用burp发送上传图片马的数据包,由于条件竞争,程序会出现来不及rename的问题,从而上传成功

     

    2.通过条件竞争,图片马来不及改名就上传了

     

    3.用文件包含查看文件

     


    Pass-19

    1.源码审计,发现move_uploaded_file()函数中的img_path是由post参数save_name控制的,因此可以在save_name利用00截断绕过

     

    2.上传成功

     

    3.文件执行成功

     


    Pass-20

    1.代码审计

     

    2.通过上传一个php文件,改包

     

  • 相关阅读:
    BZOJ 3506 机械排序臂 splay
    BZOJ 2843 LCT
    BZOJ 3669 魔法森林
    BZOJ 2049 LCT
    BZOJ 3223 文艺平衡树 splay
    BZOJ 1433 假期的宿舍 二分图匹配
    BZOJ 1051 受欢迎的牛 强连通块
    BZOJ 1503 郁闷的出纳员 treap
    BZOJ 1096 ZJOI2007 仓库设计 斜率优化dp
    BZOJ 1396: 识别子串( 后缀数组 + 线段树 )
  • 原文地址:https://www.cnblogs.com/forforever/p/12741534.html
Copyright © 2011-2022 走看看