美文网首页
upload 文件上传

upload 文件上传

作者: 留白_bb77 | 来源:发表于2019-04-17 15:30 被阅读0次

    ----、黑名单检测

    黑名单的安全性比白名单的安全性低很多,攻击首发自然也比白的名单多,一般有专门的blacklist文件,里面包含常见的危险脚本文件

    1、文件名大小写绕过,双写

        用像AsP,pHp,phphpp之类的文件名绕过黑名单检测

    2、名单列表绕过

        用黑名单里面没有的名单进行攻击,比如黑名单里没有asa或cer之类

    能被解析的文件扩展名列表:

    jsp  jspx  jspf

    asp  asa  cer  aspx

    php  phtml  php3  php4

    exe  exee

    前提是apache的httpd.conf中有如下配置代码

    AddType application/x-httpd-php .php .phtml .phps .php5 .pht

    3、特殊文件名绕过

        比如发送的http包里把文件名改成test.asp. 或者test.asp_(下划线为空格),这种命名方式。在window 系统里是不允许的,所以需要在burp之类的抓包工具里修改,然后绕过验证后,会被window系统自动去掉后面的点和空格,这个只能在window系统中

    4、0x00阶段绕过

    name = getname(http request) //假如这时候获取到的文件名是test.asp .jpg(asp 后面为0x00)

    type = gettype(name) //而在gettype()函数里处理方式是从后往前扫描扩展名,所以判断为jpg

    if (type == jpg)

    SaveFileToPath(UploadPath.name, name) //但在这里却是以0x00 作为文件名截断

    //最后以test.asp 存入路径里

    5、htaccess 文件攻击

    配合名单列表绕过,上传一个自定义的.htaccess,就可以轻松绕过各种检测

    需要:1.mod_rewrite模块开启。2.配置文件LoadModule rewrite_module modules/mod_rewrite.so前的注释去掉,寻找关键词:AllowOverride,并把后面的参数从None全部改成All

    启用.htaccess,需要修改httpd.conf,启用AllowOverride,并可以用AllowOverride限制特定命令的使用。如果需要使用.htaccess以外的其他文件名,可以用AccessFileName指令来改变。例如,需要使用.config ,则可以在服务器配置文件中按以下方法配置:AccessFileName .config 。

    6、调用解析漏洞绕过

    这类漏洞直接配合上传一个代码注入过的非黑名单文件即可,再利用解析调用/漏洞

    AddType application/x-httpd-php .jpg

    ----、白名单检测

    白名单相对来说比黑名单安全一些,但也不见得就绝对安全了

    1、0x00截断绕过

        用像test.asp.jpg的方式进行截断,再利用服务端代码的检测逻辑漏洞进行攻击

    常见的截断上传有:0x00,%00,/00 截断的核心在于chr(0)这个字符,这个函数表示返回以数值表达式值为编码的字符,举个例,print chr(78) 结果是N,所以char(0)表示的ascll字符是null,当程序输出包含chr(0)变量时,chr(0)后面的数据会被截断,后面的数据直接忽略,导致漏洞产生。

    2、解析漏洞

    这类漏洞直接配合上传一个代码注入过的白名单文件即可,再利用解析调用/漏洞

    客户端校验

    一般都是在网页上写一段javascript脚本,校验上传文件的后缀名,有白名单形式也有黑名单形式。

    判断方式:在浏览加载文件,但还未点击上传按钮时便弹出对话框,内容如:只允许上传.jpg/.jpeg/.png后缀名的文件,而此时并没有发送数据包。

    打开burp进行拦截,发现点击上传后,并没有进行发包。可知判断后缀的代码在前端,即用js代码判断的,打开浏览器的审查元素,找到文件上传的js代码

    绕过:1、用burp抓包改包,先上传一个JPG类型的木马,然后通过burp将其改为asp/php/jsp后缀名。

    2、删除对js验证脚本的调用,使其不能对上传的文件类型做检测,从而达到绕过

     -同样的通过审查元素,查看到form表单的内容,form的开始标签为<form enctype="multipart/form-data" method="post" onsubmit="return checkFile()">,

    其中的onsubmit="return checkFile()的作用就是当点击上传按钮的时候,就会触发js验证脚本,所以将这一部分删除,变可以成功绕过检测

    3、 添加允许上传的文件类型,使自己想要上传的会见类型为合法


    相关文章

      网友评论

          本文标题:upload 文件上传

          本文链接:https://www.haomeiwen.com/subject/mlsgwqtx.html