• upload-labs打关详解


    1-19关

     

    00x01 JS检查

    方法一.修改javascript代码,将.php添加到允许上传的类型中

     

    3.上传成功

     

    方法二:绕过前端,通过burpsuit抓包,上传一张info.jpg图片,然后抓包之后,将后缀改为.php,发包上传成功

     

     

    00x02 服务端对数据包的MIME进行检查

    1. burpsuite类型type绕过,上传.php文件,然后拦截,将类型改为image/jpeg

    ,发包,上传成功

     

    00x03 黑名单,禁止上传.asp|.aspx|.php|.jsp后缀文件

    1.尝试通过phtml,php3,php4,php5,pht后缀名绕过

     

    上传成功

    2.第二种方法是直接上传.htaccess,实现重写文件解析,可以直接上传图片自动解析成php文件。

    00x04 黑名单,.htaccess上传解析

    1.过滤了很多后缀文件,但是没有过滤.htaccess文件,可以重写文件解析规则绕过,上传一个.htaccess

     

    2.然后再上传一个含有phpinfo()的jpg文件,就可以解析为php文件执行

    00x05 黑名单

    1.还是黑名单,且加上了.htaccess,但是没有将后缀进行大小写统一,于是大小写绕过:

     

    2.访问成功

    00x06 黑名单,空绕过

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

     

    2.上传成功

    00x07 黑名单,点绕过

    1.还是黑名单,但是没有对后缀名进行去“.”处理,因此可在后缀名中加“.”绕过(php代码中少了$file_name = deldot($file_name);/删除文件名末尾的点)利用windows特性,会自动去掉最后的”.”

     

    00x08 黑名单,::$DATA绕过

    1.还是黑名单,但是少了这一行代码$file_ext = str_ireplace('::$DATA', '', $file_ext);//去除字符串::$DATA

    因此可以在后缀名加”::$DATA”绕过(利用windows特性)。

     

    上传成功

    00x09 黑名单,配合解析漏洞

    1. 这一关像是前几关的组合拳,虽然把最后的点给删掉,但是仍然可以绕过,因为这里的过滤并没有递归下去,只是一步,这样就相当于SQL注入里面用str_replace只过滤一次关键字一样

    2. 可以遵循着他的步骤去实现自己的payload,可以这样设置(点+空格+点),经过处理后,文件名变成info.php.,即可绕过。

     

    3.然后就可以访问info.php了。

    00x10 黑名单,双后缀名绕过

    1. 依旧是黑名单过滤,注意到,这里是将问题后缀名替换为空,于是可以利用双写绕过:$file_name = trim($_FILES['upload_file']['name']);

        $file_name = str_ireplace($deny_ext,"", $file_name);

     

    00x11 白名单,%00截断(需要两个条件:php版本小于5.3.4;php的magic_quotes_gpc为OFF状态)

    1. 另save_path等于下面的值:../upload/4.php%00

     

    00x12 白名单,00截断

    1. 和十一关不同的是这次的save_path是通过post传进来的,还是利用00截断,但这次需要在二进制中进行修改,因为post不会像get对%00进行自动解码。

     

     

    00x13 白名单,图片马

    从这一关开始要求上传图片马,但是没有办法直接执行图片马,需要另外的方法去实现一般是加上php伪协议去getshell,常见的有phar,zip等等

    如果想要看到详细的效果可以写一下简单的脚本放在upload目录下即可,

    <?php

           @include $_GET[file];

    ?>

    最最最简单的图片马直接一条命令即可生成

    copy normal.jpg /b + shell.php /a webshell.jpg

    上传一个图片马,内容如下,可以看到里面有脚本语言

     

    把该图片上传上去,尝试文件包含,成功回显

    00x14 白名单,图片马

    类似上一个题目,获取了图片的相关的大小及类型,并验证是否时刻上传的图片,同样可以使用文件头的方式绕过

    $info = getimagesize($filename);

    $ext = image_type_to_extension($info[2]);

     

    说明info[2]是一个文件的类型,同样的方法也是可以绕过的

    00x15 白名单,图片马

    换了一个获取图片信息的函数

    //需要开启php_exif模块

        $image_type = exif_imagetype($filename);

     

    跟pass-13一样的绕过方法

    00x16 白名单,图片马

    这一关对后缀名和文件类型啥的都进行了很严格的控制,而且在后面还对图片进行了二次编译

    //使用上传的图片生成新的图片

    $im = imagecreatefromjpeg($target_path);

    这一个题目跟上次校赛的题目思路一致,寻找图片被渲染后与原始图片部分对比仍然相同的数据块部分,将Webshell代码插在该部分,然后上传,下载下来后发现这一部分插入代码的没变但是其他部分都变了

     

    尝试文件包含,后面怎么利用就不多说了

     

    00x17条件竞争

     代码审计一波,发现有unlink() 函数,此函数是删除文件的作用,

    这里先将文件保存在服务器中,再判断后缀名,若后缀名不合法则删除文件

    通过条件竞争的方式在unlink之前,访问上传文件。

    利用条件竞争删除文件时间差绕过。

    上传一个含有phpinfo()函数的php文件试试,然后burp抓包

     放到inruder里面,然后清除掉所有被选则的值,因为这里不是爆破,而是让其大量重放包

     发送大量的包,然后start attack,之后浏览器一直刷新访问我们上传的这个php文件

     刷新访问成功

    00x18 条件竞争2

    解题思路

    • 对文件后缀名做了白名单判断,然后检查文件大小、文件是否存在等等。
    • 将文件上传后,对文件重新命名,同样存在条件竞争的漏洞。

    初始文件命名规则$this->cls_upload_dir . $this->cls_filename,重命名规则$this->cls_upload_dir . $this->cls_file_rename_to,当大量文件需要被重命名时就会出现条件竞争

    • move在rename之前,move操作进行了一次文件保存, 然后rename进行了一次更改文件名。
    • 利用burp不间断地发送上传图片马的数据包,由于条件竞争,程序会出现来不及rename的问题,从而上传成功。
    • 查看配置mime.types,这里记录着可被Apache服务器所识别的文件属性:
      #application/x-7z-compressed 7z

      7z后缀并不被Apache服务器所识别,却在上传文件名后缀的白名单中,可以利用Apache的解析漏洞将上传的7z后缀文件当做php文件解析。

    • Apache的解析漏洞

      Apache服务器在解析多后缀文件名的文件时,会从后往前辨别后缀,一直辨别到可以解析的后缀。

    利用burp不停发包方法同上题

    浏览器一直刷新访问上传的文件名

    或者上传的图片马

    00x19黑名单策略,文件名用户可控

    提示与查看源码

    本pass的取文件名通过$_POST来获取。

    名单策略,文件名用户可控,文件命名info.php.绕过

    上传info.php文件,保存名称改为info.php.绕过黑名单

     

     上传成功

    参考:https://segmentfault.com/a/1190000019450720#articleHeader77

  • 相关阅读:
    Tree Restoration Gym
    Game HDU
    Codeforces Gym 191033 E. Explosion Exploit (记忆化搜索+状压)
    listview去掉条目间的分割线
    listview设置条目点击的时候不变色(让状态选择器不起作用)
    url拼凑示例(具体拼凑规则由服务器定)
    格式化一个文件的大小(size),或者说是格式化一个app的大小(size)
    ratingbar设置不可调节星星数量
    listview的条目(item)如何做出卡片效果
    安卓网络权限异常
  • 原文地址:https://www.cnblogs.com/-chenxs/p/11510763.html
Copyright © 2020-2023  润新知