• 文件上传


    文件上传校验

    前端校验(js校验)
    服务器将代码发到客户端,浏览器进行校验。
     
    服务器端校验
    content-type类型分别
    文件后缀 黑 白名单

    1. 绕过前台脚本检测扩展名上传WebShell

    进入浏览器about:config模式
    关闭javascript.enabled选项关闭浏览器的js功能实现绕过。
     
    或者抓取回包修改jsp代码实现绕过
     
    还可以
     

    我们把phpshell.php后缀改为phpshell.png

    然后上传,burp拦截数据包,将拦截的数据再修改回来。

     上传成功

    2. 绕过Content-Type检测文件类型上传WebShell

    抓包修改Content-Type文件类型绕过服务器端对Content-Type的检测

    关于Content-Type:https://www.runoob.com/http/http-content-type.html

    原格式

     修改后

    几个常见的Content-Type:
    text/html :HTML格式
    text/plain :纯文本格式
    text/xml :XML格式
    image/gif :gif图片格式
    image/jpeg :jpg图片格式
    image/png :png图片格式
    application/xml : XML数据格式
    application/json : JSON数据格式
    application/pdf : pdf格式
    application/msword : Word文档格式
    application/octet-stream : 二进制流数据(如文件下载)
     
    application/x-www-form-urlencoded : <form encType="">中默认的encType,
    form表单数据被编码为key/value格式发送到服务器(表单默认的提交数据的格式)。 服务器收到的raw body会是,name=aaa&key=bbb。
     
    multipart/form-data : 表单上传文件

     

    3. 利用00截断上传WebShell

    利用00截断就是利用程序员在写程序时对文件的上传路径过滤不严格,产生0x00上传截断漏洞。
    假设文件的上传路径为 [ http://xx.xx.xx .xx/upfiles/lubr .php.jpg ] , 通过抓包截断将 [lubr.php] 后面的 [.] 换成 [0x00] 。在上传的时候,当文件系统读到 [0x00] 时,会认为文件已经结束,从而将 [ lubr.php.jpg ] 的内容写入到[lubr.php]中,从而达到攻击的目的。
     

    4. 绕过服务器端扩展名检测上传

    将文件扩展名改为.php1,apache依然可以正常解析php实现挂马

    由于apache的特性,蚁剑同样可以解析.php3

    5. 构造图片马,绕过文件内容检测上传WebShell

    主要内容:GIF89a图片头文件欺骗

    6. 利用.htaccess文件攻击上传Shell

    .htaccess文件是Apache服务器中的一个配置文件,它负责相关目录下的网页配置.通过htaccess文件,可以实现:网页301重定向、自定义404页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能。
    1.创建htaccess文件,编辑内容为:
    SetHandler application/x-httpd-php
    他的意思是将该目录下的所有文件解析为php文件来执行
    2.如果指定文件名的文件,才能被当做PHP解析,内容为
    <FilesMatch "jpg">
    SetHandler application/x-httpd-php
    </FilesMatch>
    它将该目录下匹配的jpg文件解析为php执行
    一般黑名单验证的上传成功几率比较大,白名单什么的并无卵用,先上传这样一个后缀为htaccess的文件,在上传一个.jpg的一句话,这样即使上传的一句话后缀为jpg依然可以连接一句话。
     
     
     
     
     

    如内容有误,欢迎评论区提出建议与意见。
  • 相关阅读:
    提取 Microsoft.ReportViewer.ProcessingObjectModel.dll Microsoft.ReportViewer.DataVisualization.dll 等dll(转贴)
    Windows API 逐个逐个学(0) MessageBox
    asp程序员使用asp.net中服务器控件的困惑
    SQLServer 存储过程中不拼接SQL字符串实现多条件查询
    工作学习笔记
    c#3.0/3.5 中的一些新特性
    firefox中使用ctrl+0解决了一个调试很长时间的问题
    使用Nunit进行单元测试
    asp.net 用户控件和自定义控件总结
    Visual Studio 2008 无法启动调试.找不到Microsoft Internet Explorer
  • 原文地址:https://www.cnblogs.com/Tzsblog/p/14259051.html
Copyright © 2020-2023  润新知