文件上传绕过

I —— 一句话木马 & 菜刀原理

  • 一句话木马了解

           “一句话木马”服务端(本地存储的木马脚本木马文件)就是我们用来将恶意代码上川岛服务器的网站中执行权限,该语句触发后,接收入侵者通过客户端提交的数据,执行并完成乡音的操作。服务端的代码内容为其中hacker的内容可以自己进行修改

           “一句话木马”客户端(远程服务器上被插入一句话的asp可执行文件)用来向服务端提交控制数据的,提交的数据通过服务端构成完整的功能语句并执行,也就是我们所需要的木马文件

    好处:一句话木马短小精悍,功能强大,隐蔽性非常好

    参考博客: https://www.cnblogs.com/milantgh/p/3629199.html

  • 图片一句话木马制作

    cmd的制作:
    命令: copy a.jpg/b+b.php/a c.jpg b代表二进制,a代表ascii编码

    uedit制作:
    直接下载这个软件,把一句话木马丢进去编码,另存即可

  • 关于脚本格式的解析

    上传的脚本来判断是否可以执行
    每种类型的文件,无法被别的格式进行解析

  • 菜刀的原理

    https://blog.csdn.net/nzjdsds/article/details/81878531

II —— js & mime

  • js本地验证文件上传

            当只有上传位置,没有提交按钮的时候,可以通过检查元素写入表单 ,然后上传文件

    一、第一种

    js验证用于客户端本地的验证,一般会有弹窗
    js判断代码:οnsubmit=“return checkFile()”, 可以通过删除js代码,成功上传

    二、第二种

    尝试在允许上传格式的文件里添加.php格式

    三、第三种

    拷贝源代码,在本地分析
    尝试删除JavaScript代码
    指定在action=“”中指定上传地址

    四、第四种

    上传允许上传的文件,用burp进行抓包改包

  • mime绕过文件上传

           MIME: 多用途互联网邮件扩展类型,是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定的程序来打开,多用于指定一些客户端自定义的文件名,以及一些媒体文件打开方式。简单来说,就是服务器判断你上传的是什么文件

    参考手册:http://note.youdao.com/noteshare?id=a8756fcfd5aa06579ffb964e8b25846e&sub=311CA76F94294383BC7FD6D4C6DCE2EC

III —— 文件扩展名 & 文件头验证 & iis6.0

  • 文件扩展限制

    文件扩展名限制是通过客户端黑名单来限制上传文件的类型。

  1. 大小写绕过文件上传(Windows下文件不区分大小写,linux下文件是区分大小写的)

  2. 在文件后缀加上点和空格进行绕过

  3. htaccess文件上传绕过

           htaccess文件(分布式配置文件)提供了针对每个目录改变配置的方法,即在一个特定的目录中放置一个包含指令的文件,其中的指令作用于此目录及其所有的子目录。htaccess问件事Apache服务器中的一个配置文件,他负责相关目录下的网页配置,功能:网页301重定向、自定义404错误页面、改变文件扩展名、允许/组织的用户或者目录的访问、进制目录列表、配置默认文档等。
    例:

    <FilesMatch "lemonl">
    SetHandler application/x-httpd-php
    </FilesMatch>
    
  • 文件头验证
    1.内容验证文件上传
    gif格式

    文件上传绕过_第1张图片

    png格式
    文件上传绕过_第2张图片

    jpg格式
    文件上传绕过_第3张图片

    可以在一句话木马前面加入GIF89a,然后将木马保存为图片的格式 (.jpg/.gif),绕过验证后,尝试修改文件后缀.php进行上传

    2.%00截断上传

            0x00是十六进制表示方法,是ascii码为0的字符,在有些函数处理时,会把这个字符当做截断处理,这个可以用在对文件类型名的绕过上。关于00截断get是可以自动转换的,post需要特殊转换(将%00进行url编码)

    文件上传绕过_第4张图片
  • iis6.0解析漏洞
    a. 目录解析
           以*.asp命名的文件夹里的文件都将会被当成ASP文件执行
    比如 —— 1.asp/1.jpg,这里1.jpg会被当做asp文件执行

    b.文件解析

           .asp;.jpg 像这种畸形文件名 “;”后面的直接被忽略,也就是说当成*.asp文件执行*
           比如 ——1.asp;1.jpg命名的文件,同样是以asp脚本进行执行

IV —— 编辑器漏洞&iis高版本思路

  • 编辑器漏洞
    一般 url为 www.xxx.com/uploadfiles 或者 www.xxx.com/edit 一般都是编辑器
    编辑器分为两种:

    1.不需要后台验证,可以直接在前台访问且操作
           找到编辑器的方法: 目录爆破(用御剑去扫描网站上的目录; 蜘蛛爬行(AWVS)

    2.需要后台验证,才能操作的编辑器
            一般要先通过漏洞或其他方法登录后台

    常用的编辑器:FCKeditor EWEbeditor CKFinder UEDITOR DotNetTextBox Cute Editor

    用的次数较多的是fck以及eweb

    编辑器的漏洞利用:

    1> 找到编辑器
    
    2> 确认版本
    
    3> 去搜索该版本编辑器的漏洞利用
    

    FCKeditor编辑器漏洞:

    FCKeditor常见上传目录:
    
    FCKeditor/editor/filemanager/browser/default/connectors/test.html
    FCKeditor/editor/filemanager/upload/test.html
    FCKeditor/editor/filemanager/connectors/test.html
    FCKeditor/editor/filemanager/connectors/upload/test.html
    

    FCKeditor常见漏洞的挖掘与利用整理汇总:
    https://blog.csdn.net/lizhengnanhua/article/details/38451737
    EWEbeditor编辑器漏洞:

  1. 进后台
    eweb编辑器默认数据库地址是: ewebeditor/db.ewebeditor.mdb
  2. eweb遍历漏洞
    ewebeditor/admin_uploadfile.asp?id=14&dir=…/
  3. 修改样式表上传文件

EWEbeditor常见漏洞的挖掘与利用整理汇总:
https://blog.csdn.net/xysoul/article/details/44563221

  • 畸形解析漏洞
    影响版本:iis7/iis7.5/nginx<0.8.03

    漏洞产生的条件:开启Fast-CGI或php配置文件中开启了cgi.fix_pathinfo

    漏洞利用: 当上传一个名叫1.jpg的图片文件,而这个图片文件里面包含了

     fputs(fopen('shell.php','w'),'')?>
    

            那么它会生成shell.php的脚本文件,写入我们的一句话,密码为cmd,而我们一句话的位置是:上传的图片文件名字/shell.php, 如果图片没有被改名,那么现在的一句话文件在: 1.jpg/shell.php

V —— sqli-labs(实战)

       upload-labs是一个用php语言编写的,专门收集渗透测试和CTF中遇到的各种上传漏洞的靶场。目前一共有21关。

文件上传绕过_第5张图片

靶场地址:https://github.com/c0ny1/upload-labs


学习地址:https://www.bilibili.com/video/av67089782?


你可能感兴趣的:(信息安全,#,CTF)