热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

CTF竞赛中文件上传技巧与安全绕过方法深入解析

绕过客户端校验前台脚本检测扩展名上传webs hell原理:当用户在客户端选择文件点击上传的时候,客户端还没有向服务器发送任何消息,就对本地文件进行检测来判断是否是可以上传的类型,这

技术图片

绕过客户端校验前台脚本检测扩展名上传webs hell

原理:

当用户在客户端选择文件点击上传的时候,客户端还没有向服务器发送任何
消息,就对本地文件进行检测来判断是否是可以上传的类型,这种方式称为前台
脚本检测扩展名。
绕过前台脚本检测扩展名,就是将所要上传文件的扩展名更改为符合脚本检
测规则的扩展名,通过 BurpSuite 工具,截取数据包,并将数据包中文件扩展名
更改回原来的,达到绕过的目的

实验:


  1. 打开要上传的页面,上传要上传的木马文件lurb.php,点击上传。
    技术图片

  2. 页面显示错误
    技术图片

  3. 返回上传页面,点击浏览,选择要上传的木马文件lubr.jpg(把lubr.php重命名
    lubr.jpg)
    技术图片

  4. 上传用burpsuite抓包,将.jpg改为.php,点击’forward’发送数据包,进行绕过。
    技术图片
    技术图片
    技术图片

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

    原理:

    当浏览器在上传文件到服务器的时候,服务器对所上传文件的Content-Type类型进行检测,如果是白名单允许的,则可以正常上传,否则上传失败。绕过Content–Type文件类型检测,就是用BurpSuite 截取并修改数据包中文件的Content-Type类型,使其符合白名单的规则,达到上传的目的。

    实验:


  5. 打开要上传文件的页面,上传木马lubr.php。报错
    技术图片
    技术图片

  6. 利用burpsuite抓包更改Content-Type由application/octet-stream改为148
    image/gif。点击’forward’发送数据包。
    技术图片
    技术图片
    技术图片

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

    原理:

    当浏览器将文件提交到服务器端的时候,服务器端会根据设定的黑白名单对浏览器提交上来的文件扩展名进行检测,如果上传的文件扩展名不符合黑白名单的限制,则不予上传,否则上传成功。

将一句话木马的文件名 lubr.php,改成lubr.php.abc。首先,服务器验证文件扩展名的时候,验证的是.abc,只要该扩展名符合服务器端黑白名单规则,即可上传。另外,当在浏览器端访问该文件时,Apache如果解析不了.abc扩展名,会向前寻找可解析的扩展名,即.php。一句话木马可以被解析,即可通过中国菜刀连接。apache解析文件名从后往前解析

实验:


  1. 打开要上传文件的页面,上传木马文件lubr.php。上传报错
    技术图片
    技术图片

  2. 返回上传页面,点击浏览,选择要上传的木马文件lubr.php.abc(由lubr.php重命名lubr.php.abc),点击上传
    技术图片
    技术图片

    00截断上传

    原理:

    利用00截断就是利用程序员在写程序时对文件的上传路径过滤不严格,产生0x00上传截断漏洞。

假设文件的上传路径为http://xx.xx.xx.xx/upfiles/lubr.php.jpg,通过抓包截断将【lubr.php】后面的【.】换成【0x00】。在上传的时候,当文件系统读到【0x00】时,会认为文件已经结束,从而将【lubr.php.jpg】的内容写入到【lubr.php】中,从而达到攻击的目的。

实验:


  1. 打开需要上传的网页,选择需要上传的木马文件‘xxx.php.jpg’上传.
    技术图片

  2. burp suite抓包。
    技术图片

  3. 单击“hex”标签页,点击【hex】,进入到十六进制源码界面。
    技术图片

  4. 找到【lubr.php.jpg】对应的十六进制源码,将【lubr.php】后【.】对应的【2e】改为【00】
    技术图片

  5. 点击【forward】,即可成功上传文件
    技术图片

    构造图片木马上传绕过

    原理:

    一般文件内容验证使用getimagesize()函数检测,会判断文件是否是一个有效的文件图片,如果是,则允许上传,否则的话不允许上传。本实例就是将一句话木马插入到一个【合法】的图片文件当中,然后用中国菜刀远程连接。

    实验:


  6. 随便找一个图片,与所要上传的木马放置于同一文件夹下。打开cmd,进入木马所在文件夹
    技术图片

  7. 输入copy pic.jpg/b+lubr.php/a PicLubr.jpg,将【lubr.php】插入到【pic.jpg】中。
    技术图片

  8. 上传图片木马,并访问。
    技术图片

    Apache 解析漏洞上传文件

    原理:

    Apache识别文件类型是从右向左识别的,如果如遇不认识的扩展名会向前一次识别,知道遇到能别
    的扩展名

    实验


  9. 将原本不能上传的xx.php文件更名为xx.php.abc上传即可
    技术图片

    Fckeditor漏洞上传webshell

    原理:

    Fckeditor在2.4.2以下存在一个直接上传任意文件的上传页面,可直接上传webshell

    实验:


  10. 打开网站判断是否有fckeditor编辑器出现403禁止访问,说明此目录存在
    技术图片

  11. 判断fckeditor编辑器版本号,输入:http://192.168.1.3:8001/FCKeditor/_whatsnew.html,由返回页面可知此fckeditor编辑器版本为2.0
    技术图片

  12. 此版本fckeditor存在两个上传漏洞页面:
    FCKeditor/editor/filemanager/browser/default/browser.html?type=Image&cOnnector=connectors/asp/connector.as
    FCKeditor/editor/filemanager/browser/default/connectors/asp/connector.asp?Command=GetFoldersAndFiles&Type=zhang&CurrentFolder=/
    第一个页面是在网站根目录下的userfiles目录下的Image目录下打开一个上传页面,上传的文件都保存在这个目录下;
    第二是在网站根目录下的userfiles目录下创建一个zhang目录。1.4打开
    http://192.168.1.3:8001/FCKeditor/editor/filemanager/browser/default/browser.html?type=Image&cOnnector=connectors/asp/connector.asp
    技术图片

  13. 00截断上传,先上传一个jpg类型文件,再上传一个asp文件报错。burp suite抓包进行00截断上传。
    技术图片
    技术图片
    技术图片

  14. 设置代理,再次上传类型为ASP的文件webshell.asp.jpg(把webshell.asp重命名webshell.asp.jpg即可),击”upload”按钮
    技术图片

  15. burpsuite 抓到包 进到hex选项卡更改00截断
    技术图片

  16. 将.jpg的.的hex’2e‘改为00
    技术图片

  17. 切换为raw模式,空格变为如图样子,单击“forward”按钮(多单击几次),继续发送请求数据包
    技术图片

  18. 切换为history
    标签,选择截获的数据包,然后再单击“reponse”标签页,发现文件的上传路径为“/UserFiles/Image/”
    技术图片

  19. 取消浏览器的代理设置,刷新上传页面,可以看到webshell.asp.jpg文件已经上传成功,并命名为webshell.asp。
    技术图片

原文:大专栏  ctf基本的文件上传与绕过学习



推荐阅读
  • 2018年9月21日,Destoon官方发布了安全更新,修复了一个由用户“索马里的海贼”报告的前端GETShell漏洞。该漏洞存在于20180827版本的某CMS中,攻击者可以通过构造特定的HTTP请求,利用该漏洞在服务器上执行任意代码,从而获得对系统的控制权。此次更新建议所有用户尽快升级至最新版本,以确保系统的安全性。 ... [详细]
  • 七款高效编辑器与笔记工具推荐:KindEditor自动换行功能解析
    本文推荐了七款高效的编辑器与笔记工具,并详细解析了KindEditor的自动换行功能。其中,轻笔记QingBiJi是一款完全免费的记事本软件,用户可以通过其简洁的界面和强大的功能轻松记录和管理日常事务。此外,该软件还支持多平台同步,确保用户在不同设备间无缝切换。 ... [详细]
  • 第二章:Kafka基础入门与核心概念解析
    本章节主要介绍了Kafka的基本概念及其核心特性。Kafka是一种分布式消息发布和订阅系统,以其卓越的性能和高吞吐量而著称。最初,Kafka被设计用于LinkedIn的活动流和运营数据处理,旨在高效地管理和传输大规模的数据流。这些数据主要包括用户活动记录、系统日志和其他实时信息。通过深入解析Kafka的设计原理和应用场景,读者将能够更好地理解其在现代大数据架构中的重要地位。 ... [详细]
  • Node.js 配置文件管理方法详解与最佳实践
    本文详细介绍了 Node.js 中配置文件管理的方法与最佳实践,涵盖常见的配置文件格式及其优缺点,并提供了多种实用技巧和示例代码,帮助开发者高效地管理和维护项目配置,具有较高的参考价值。 ... [详细]
  • 本文介绍了如何利用Apache POI库高效读取Excel文件中的数据。通过实际测试,除了分数被转换为小数存储外,其他数据均能正确读取。若在使用过程中发现任何问题,请及时留言反馈,以便我们进行更新和改进。 ... [详细]
  • FastDFS Nginx 扩展模块的源代码解析与技术剖析
    FastDFS Nginx 扩展模块的源代码解析与技术剖析 ... [详细]
  • Zookeeper作为Apache Hadoop生态系统中的一个重要组件,主要致力于解决分布式应用中的常见数据管理难题。它提供了统一的命名服务、状态同步服务以及集群管理功能,有效提升了分布式系统的可靠性和可维护性。此外,Zookeeper还支持配置管理和临时节点管理,进一步增强了其在复杂分布式环境中的应用价值。 ... [详细]
  • 在MySQL中实现时间比较功能的详细解析与应用
    在MySQL中实现时间比较功能的详细解析与应用。本文深入探讨了MySQL中时间比较的实现方法,重点介绍了`UNIX_TIMESTAMP`函数的应用。该函数可以接收一个日期时间参数,也可以不带参数使用,其返回值为Unix时间戳,便于进行时间的精确比较和计算。此外,文章还涵盖了其他相关的时间处理函数和技巧,帮助读者更好地理解和掌握MySQL中的时间操作。 ... [详细]
  • 如何在CAD阅图软件中将PDF文件高效转换为CAD格式?
    如何在CAD阅图软件中将PDF文件高效转换为CAD格式? ... [详细]
  • 如何撰写PHP电商项目的实战经验? ... [详细]
  • 在探讨C语言编程文本编辑器的最佳选择与专业推荐时,本文将引导读者构建一个基础的文本编辑器程序。该程序不仅能够打开并显示文本文件的内容及其路径,还集成了菜单和工具栏功能,为用户提供更加便捷的操作体验。通过本案例的学习,读者可以深入了解文本编辑器的核心实现机制。 ... [详细]
  • 在多模块项目中,项目A作为一个独立的工具包,不依赖于任何第三方库。其目录结构如下:`--src--main--java--resources`。当将项目A打包成JAR文件后,发现无法正确访问`resources`目录下的文件资源。这一问题可能源于JAR文件的构建配置或类路径设置不当,需要仔细检查Maven或Gradle的构建脚本,确保资源文件被正确包含并加载。 ... [详细]
  • Git基础操作指南:掌握必备技能
    掌握 Git 基础操作是每个开发者必备的技能。本文详细介绍了 Git 的基本命令和使用方法,包括初始化仓库、配置用户信息、添加文件、提交更改以及查看版本历史等关键步骤。通过这些操作,读者可以快速上手并高效管理代码版本。例如,使用 `git config --global user.name` 和 `git config --global user.email` 来设置全局用户名和邮箱,确保每次提交时都能正确标识提交者信息。 ... [详细]
  • 在Linux环境下,本文详细探讨了Apache服务器中CGI技术的应用与实现。首先,通过使用yum包管理器安装了必要的软件,如PHP。安装完成后,对Apache服务器进行了配置,确保CGI功能正常运行。此外,还介绍了如何编写和调试CGI脚本,以及如何在实际环境中部署这些脚本以提供动态网页内容。实验结果表明,通过合理的配置和优化,Apache服务器能够高效地支持CGI应用程序,为用户提供丰富的交互体验。 ... [详细]
  • 本文首先对信息漏洞的基础知识进行了概述,重点介绍了几种常见的信息泄露途径。具体包括目录遍历、PHPINFO信息泄露以及备份文件的不当下载。其中,备份文件下载涉及网站源代码、`.bak`文件、Vim缓存文件和`DS_Store`文件等。目录遍历漏洞的详细分析为后续深入研究奠定了基础。 ... [详细]
author-avatar
躺在地球上的熊
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有