• upload-labs通关方式


    pass-1

    通过弹窗可推断此关卡的语言大概率为js,因此得出两种解决办法 

    方法一

    浏览器禁用js

    关闭后就逃出了js的验证就可以正常php文件

    上传成功后打开图片链接根据你写的一句话木马执行它,我这里采用phpinfo()

    方法二

    在控制台找到此语句

    将蓝色部分删除即可

    pass-2

     

    通过提示可知他是在服务端进行检查

     通过查看源码可以看出能上传的文件类型为image/jpeg

    通过burp suite进行抓包

    修改文件类型

    上传成功

    pass-3 

    查看提示和代码发现他是使用黑名单禁止文件上传类型的

    这里我们直接使用将文件类型改为php2 php3 php5 php7 phtml 等绕过

    PHP5文件实际上就是.PHP文件,只不过代码由PHP5引擎解析。

    PHP5是一种PHP版本间的区分,该后缀名并不常见,另外还有.PHP2.PHP3.PHP4文件。

    我这里不解析php3 5 文件这里不演示了,但是使用php3 5 是可以成功绕过的

    pass-4

    首先查看提示,本关继续使用黑名单,禁止下列文件格式:

    限制特别多,但是我们可以想到一种更奇特的方法(即.htaccss文件):

    常见配法

    .htaccess文件内容如下

    1. <FilesMatch "4.jpg">
    2. SetHandler application/x-httpd-php
    3. </FilesMatch>


    查看作用后,发现这句话的作用是将该目录所有文件均映射为php文件类型,所以我们先上传.htaccess文件,随后再上传我们的jpg文件(jpg文件要和.hataccess文件在同一个目录下),查看后我们发现uploads已经被传上去。

    pass-5

    这里看源码

    这里没有转换小写因此将文件类型改为大写就行

     

    pass-6

    通过查看代码发现这里并没有首尾去空因此很简单加空格就行

    windows下.和空格会被自动去掉因此用burp进行更改

    上传成功

     

    pass-7

     通过查看代码可以看出没有去点

    因此这里还是用burp抓包改包

    上传成功

     

     pass-8

    查看源码

    这里没有进行过滤data字符因此这里也是抓包改包

     

    上传成功

     

    pass-9

    查看代码发现这里几乎过滤了所有的空格点data字符等

     

    所以这里我们不能再只绕过一次了,通过代码执行顺序我们可以先过滤掉点再过滤空格

    所以这里老办法抓包改包

     

     

    pass-10

     这里查看代码关键代码如下

    发现依旧是用上传的文件名来拼接路径并保存文件 没有对文件重命名

    只是用了str_ireplace()函数来检测(此函数无视大小写) 如果文件名含有黑名单里面的字符串 就替换为空

    但是只替换一次 并没有进行正则匹配或者是循环匹配敏感字符  因此只要双写php即可 因为是从左往右读的 所以替换为空后 还是php

    pphphp、phphpp都可以尝试 

    上传成功 

     

  • 相关阅读:
    NodeJS @kubernetes/client-node连接到kubernetes集群的方法
    详解FreeRTOS:FreeRTOS任务调度器开启过程源码分析(进阶篇—5)
    Python基础|输入、数据类型、变量、格式化输出点
    智慧工地抽烟识别检测系统
    Windows10出现WIFI蓝牙图标消失,网卡驱动出现感叹号等无法上网的情况解决方案
    Net 高级调试之十三:托管堆的几个经典破坏问题
    提升程序运行速度-计算加速的20种方法
    Mac热门软件推荐Paste mac 中文激活版 剪切板工具
    LDAP协议工作原理
    kubernetes-service详解
  • 原文地址:https://blog.csdn.net/Lemon_miko/article/details/136687277