zoukankan      html  css  js  c++  java
  • 总结下文件上传

    首先找到文件上传的窗口,然后判断是服务器端还是客户端的验证,客户端较容易判断出来,最后检验是哪种服务器端的过滤方式。判断是客户端和服务端检验,再检验是白名单还是黑名单,根据具体情况来决定采用什么绕过方式。

    文件上传漏洞:服务器端和客户端

    服务器端:

    .htaccess攻击:

    这个攻击主要是上传一个.htaccess文件,让我们上传到服务器端的文件能运行起来

    看一段代码来理解下:

    <FilesMatch "Monster">SetHandler application/x-httpd一php
    这段代码的意思就是,我上传的文件,只要是Monster.xxx就以php格式运行,例如当我上传一个Monster.txt,当我访问这个文件的时候,这个文件就会以php形式运行起来。

    这个漏洞主要应用在:上传漏洞getshell,维持访问后门。

    %00截断上传

    当服务器端过滤文件的时候,是通过判断文件后缀来审查文件。

    我们可以在传输这个文件改变文件的后缀名,例如:

    www.xxx.com/qq.jpg(正常文件上传)

    www.xxx.com/qq.php%00.jpg(上传一个php文件,但我们上传到服务器端要以php运行呀,所以要截断.jpg)

    注意:%00这个在url上要编码成url形式,否则url编码之后上传上去就不是%00了,所以会产生错误。

    Mine修改上传

    当服务器端过滤文件的时候,是通过判断文件类型来审查文件。

    那我们就要改数据包中的Content-Type

    jpg的类型是:image/jpeg

    伪造路径攻击

    结合解析漏洞利用

    编辑器任意文件上传

    通常进到后台,大多数有个编辑器,这时候应该先确定是什么编辑器,再去网上进行搜索该编辑器对应版本的漏洞。

    客户端:

    JS绕过上传

    JS验证时通过Java script来判断文件,过滤,这个好解决,就是直接删除过滤的代码,因为这是客户端代码,这些代码是直接显示出来的,所以我可以知道他们的代码。

    或者通过捉包修改我们的数据包进行任意文件上传,可以看反应速度来确定下是不是js本地验证,客户端反应快。

    这是玄魂工作室的,对于我来说,这些技术都已经是掌握了,但是怕自己忘,还是总结下比较好。其实还有双文件上传,绕过黑名单机制,就是那种改文件后缀名的。

  • 相关阅读:
    Linux学习
    PHP语法笔记
    iOS二次发育(swift)闭包
    iOS二次发育(swift)类
    iOS二次发育(swift)结构体
    iOS二次发育(swift)枚举
    【NOIP2013模拟联考14】隐藏指令
    【NOIP2012模拟8.9】逐个击破
    NOIP2020.9.19模拟patrick
    NOIP2020.9.19模拟 spongebob
  • 原文地址:https://www.cnblogs.com/Triangle-security/p/11842487.html
Copyright © 2011-2022 走看看