ctfhub web 文件上传 技能树 wp

htaccess

  1. 查看网页源码,可以看到常用的文件后缀都被禁用。在这里插入图片描述
  2. 根据题目的提示,.hatccess文件【.htaccess是Apache服务器的一个配置文件。它负责相关目录下的网页配置。通过htaccess文件,可以帮我们实现:网页301重定向、自定义404错误页面,改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能。】
    前提:mod_rewrite模块开启,配置文件中LoadMoudle rewrite_module module modules/mod_rewrite.so AllowOverride All,配置文件中AllowOverride All
    (如果可能做题过程中结果出现问题,但步骤正确,可以看看前提是否正确)

在这里插入图片描述
其中htaccess文件中的内容(或者在burp中添加):
SetHander application/x-httped-php(把所有文件解析成php文件)或者AddType application/x-httped-php.png(把png文件解析为php文件)
3. 将htaccess文件上传后,然后再把文件内容为一句话木马的jpg文件上传,利用蚁剑连接,即可得到flag。

MIME验证

MIME((Multipurpose Internet Mail Extensions)多用途互联网邮件扩展类型。
它是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开。多用于指定一些客户端自定义的文件名,以及一些媒体文件打开方式每个MIME类型由两部分组成,前面是数据的大类别,例如声音 audio、图象 Image等,后面定义具体的种类。
常见的MME类型,例如:
  超文本标记语言文本 .html,html text/htm
  普通文本 .txt text/plain
  RTF文本 .rtf application/rtf
  GIF图形 .gif image/gif
  JPEG图形 .jpg image/jpeg

  1. 上传包含一句话木马的php文件,然后使用burp抓包,修改数据包的content type为image/gif(注意是第二个content type)在这里插入图片描述
  2. 发送到repeater修改后,点击send,然后放包,即可显示上传php文件成功后的相对路径。
  3. 使用蚁剑连接该一句话木马即可获得flag。在这里插入图片描述

文件头检查

文件头检验 是当浏览器在上传文件到服务器的时候,服务器对所上传文件的Content-Type类型进行检测。如果是白名单允许的,则可以正常上传,否则上传失败。

  1. 当我们尝试上传一句话木马的php文件,出现了正确后缀类型的弹窗。在这里插入图片描述
  2. 使用010editor制作一张图片木马,上传时使用burp抓包把文件后缀改为php,然后点击send。
  3. 使用蚁剑连接php文件,即可在对应目录下找到flag。

00截断

原理:00截断是操作系统层的漏洞,由于操作系统是C语言或汇编语言编写的,这两种语言在定义字符串时,都是以\0(即0x00)作为字符串的结尾。操作系统在识别字符串时,当读取到\0字符时,就认为读取到了一个字符串的结束符号。因此,我们可以通过修改数据包,插入\0字符的方式,达到字符串截断的目的。00截断通常用来绕过白名单限制。攻击者可以利用手动添加字符串标识符的方式来将后面的内容进行截断,而后面的内容又可以帮助我们绕过检测。
限制条件:PHP版本<5.3.29,且GPC关闭【 如果magic_quotes_gpc=On,PHP解析器就会自动为post、get、cookie过来的数据增加转义字符“\”,以确保这些数据不会引起程序,特别是数据库语句因为特殊字符(认为是php的字符)引起的污染而出现致命的错误 。插入后在数据库里显示的是转义前的原始数据,所以取出来不用转义在magic_quotes_gpc=On的情况下,如果输入的数据有单引号(’)、双引号(”)、反斜线(\)NUL(NULL 字符)等字符都会被加上反斜线。这些转义是必须的,如果这个选项为off,那么我们就必须调用addslashes这个函数来为字符串增加转义。】

  1. 查看网页源码,发现只有三种文件格式允许上传,且为post传参。在这里插入图片描述

  2. 对上传文件进行测试,
    test.php ->上传失败
    test.jpg ->上传成功
    test.png ->上传成功
    test.png.php ->上传失败
    test.php.png ->上传成功
    上传test.php 修改后缀成为 test.jpg ->上传成功
    我们大致可以判断出,后端在上传时,只是通过获取上传的文件的最后的后缀,来判断是否可以上传。

  3. 上传一个含有一句话木马jpg文件,使用burp抓包,分别在url和文件名处添加.php%00进行00截断处理并上传。在这里插入图片描述

  4. 使用蚁剑连接1.php文件获取文件目录即可成功得到flag。在这里插入图片描述

双写绕过

  1. 点击右键查看源码,发现一句话木马的php文件不被限制,可以上传。在这里插入图片描述
  2. 上传一个一句话木马文件,使用burp抓包,查看响应结果,发现文件后缀php被过滤。
    在这里插入图片描述
  3. 我们可以考虑尝试双写php后缀,构造一句话木马文件1.pphphp,在上传时后缀中的php被删除,剩余部分拼接成php,上传成功。在这里插入图片描述
  4. 使用蚁剑连接一句话木马,获取目录,即可得到flag。在这里插入图片描述
  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
文件上传漏洞是一种安全漏洞,攻击者可以通过该漏洞向服务器上传恶意文件。对于CTF比赛中的文件上传漏洞,可以按照以下测试流程进行测试: 1. 根据要求上传文件,并查看返回结果,包括路径和提示信息。 2. 尝试上传不同类型的恶意文件,如xx.php文件,并分析返回结果。可以查看HTML源码,检查是否通过前端JS做了上传限制。 3. 尝试使用不同方式绕过上传限制,如黑白名单绕过、MIME类型绕过、目录截断绕过等。同时可以结合其他漏洞,如敏感信息泄露等。 4. 获取木马文件的路径,并进行连接测试。 为了防止文件上传漏洞,可以采取以下安全防护措施: 1. 对上传文件进行全面的验证,包括类型验证、内容验证和文件名验证。不要直接使用用户提供的文件名,而是使用安全的命名约定。 2. 对上传的文件进行隔离,确保它们不会在服务器上执行。 3. 限制上传目录的权限,只允许Web服务器进程进行写入操作。 4. 对上传的文件进行恶意代码扫描,并使用防病毒软件进行检查。 5. 定期更新和修补Web应用程序,以确保安全漏洞得到修复。 在CTF比赛中,常用函数可以通过文件包含漏洞进行利用。可以构造特定的URL来实现文件包含漏洞的利用,例如通过fi_local.php进行文件包含,然后指定filename参数来包含木马图片。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [【web-ctfctf-pikachu-fileupload](https://blog.csdn.net/Dajian1040556534/article/details/126451918)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [CTFweb文件上传基础知识](https://blog.csdn.net/cutesharkl/article/details/131702857)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

poggioxay

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值