CTFHUB(技能树 web 文件上传部分

CTFHUB(技能树 web 文件上传部分

文件上传漏洞是指网络攻击者上传了一个可执行的文件到服务器并执行。这里上传的文件可以是木马,病毒,恶意脚本或者WebShell等。这种攻击方式是最为直接和有效的,部分文件上传漏洞的利用技术门槛非常的低,对于攻击者来说很容易实施。

无验证

因为在这里并没有对上传文件做任何检验

所以我们直接上传php文件

先写一个一句话木马

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ed9CpmtD-1583346897118)(C:\Users\renjianwen\Desktop\新建文件夹 (2)]\1 (5).png)

一句话木马用

$_GET[' ']、$_POST[' ']、$_COOKIE[' ']

接收我们传递的数据,

并把接收的数据传递给一句话木马中执行命令的函数,进而执行命令。

将文件用浏览器上传给服务器,

我们根据返回的地址可以拼接出shell的存储地址

打开蚁剑 连上目标地址

一把唆出后台目录

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NOSUaGJU-1583346897118)(C:\Users\renjianwen\Desktop\新建文件夹 (2)]\1 (2).png)

然后就可以找出flag了

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1QxleW3w-1583346897119)(C:\Users\renjianwen\Desktop\新建文件夹 (2)]\1 (3).png)

前端验证

在文件上传之前,前端js代码会对文件后缀进行一次验证

符合要求才允许上传,所以我们在这里抓包,改文件后缀就 好了

写一个一句话木马passwd.php 把后缀改为png/jpg 这样前端就过了

打开网页把要上传的文件传到浏览器

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Hdp5GTkw-1583346897119)(C:\Users\renjianwen\Desktop\新建文件夹 (2)]\QQ截图20200305012016.png)

掏出burp,抓包。找到passwd.png 改为1.php

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-17kvf6FH-1583346897120)(C:\Users\renjianwen\Desktop\新建文件夹 (2)]\QQ截图20200305012131.png)

这样就可以看到上传成功了,在这里我们可以看到我们的shell的存储位置

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ffQDgud1-1583346897120)(C:\Users\renjianwen\Desktop\新建文件夹 (2)]\QQ截图20200305012201.png)

复制url 扔到蚁剑,填上密码

在url那栏就填我们shell存储地址

密码就填我们一句话木马里的变量名

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-D5U4lzpy-1583346897121)(C:\Users\renjianwen\Desktop\新建文件夹 (2)]\QQ截图20200305012336.png)

将填好数据添加进去 然后我们看一下文件管理

可以看到shell在/upload下

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qNBdpLfa-1583346897121)(C:\Users\renjianwen\Desktop\新建文件夹 (2)]\QQ截图20200305012247.png)

然后我们可以在/html目录下找到我们的flag

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-h878sA4d-1583346897121)(C:\Users\renjianwen\Desktop\新建文件夹 (2)]\QQ截图20200305012303.png)

MIME限制

上传文件时,通过对选择的文件类型检验限制上传恶意文件

还是原来一句话

上传,抓包

将Content-Type改为image/jpeg

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OelnAEiU-1583513967574)(3 (3)].png)

蚁剑连接

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wwBj5NSp-1583513967576)(3 (4)].png)

找到后台flag

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zSn5rcDz-1583513967576)(3 (1)].png)

在这里我们看一下后台源码

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2mVWyJAS-1583513967576)(3 (2)].png)

在if语句那里我们可以看到只对文件类型做了限制

所以我们也可以用和js绕过一样的方法

先把文件改为jpg 然后抓包改后缀

这样文件类型也符合要求

00截断

0x00是字符串的结束标识符,攻击者可以利用手动添加字符串标识符的方式来将后面的内容进行截断,而后面的内容又可以帮助我们绕过检测。

00截断的限制条件
PHP<5.3.29,且GPC关闭

这个耗了我好久的时间,主要因为我这边显示传上去了

但我蚁剑连不上,我一直以为是环境问题

后来找到了原因

在网址处我们可以看到/?road= 在这里road是文件存放的路径

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SgWuDkmf-1583513967577)(4 (1)].png)

如果你没有在路径这里截断,只是单纯在文件名那里截断

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lCmx6GBq-1583513967578)(4 (2)].png)

系统会将你传入的文件自动存储在road下

虽然成功传上去但将文件名自行修改,

文件后缀也会改为你的Content-Type

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-K6ARt6x5-1583513967578)(4 (14)].png)

所以我们不光要将文件名那里截断,在road那里也要截断这样才能找到你传上的shell

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rTbzduyK-1583513967578)(4 (4)].png)

然后00截断无论是0x00 还是%00都是可以的

%00是被服务器解码为0x00

还有一点要注意 你的shell名称是由

你road下的名字定的

与你file name那里无关

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-o7mUKdeP-1583513967579)(4 (5)].png)

文件头检查

文件头检验 是当浏览器在上传文件到服务器的时候,

服务器对所上传文件的Content-Type类型进行检测,

如果是白名单允许的,则可以正常上传,否则上传失败

我们先将之前一句话的文件头改了

打开winhex ,改掉文件头,具体改成什么 (我懒,不想记)

winhex打开一张后缀相同的真实图片,复制第一行

将第一行粘贴到你的一句话最前面

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dJh9lnXy-1583513967579)(5 (1)].png)

照例 上传 改包 蚁剑 得到flag

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0UQJ1EzQ-1583513967579)(5 (2)].png)

双后缀

照旧刷一遍就是 上传 改包

上传成功 咦?我的后缀呢

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-P7mLfUhU-1583513967580)(6 (1)].png)

既然你吃了我一个后缀 那我就写两个

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7H6PMq82-1583513967581)(6 (2)].png)

嘿嘿嘿 这样可以啦 然后蚁剑 得到flag

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-za9hFxHN-1583513967581)(6 (3)].png)

其实 这题 呢 就是他会过滤掉黑名单里面的字符

php就被过滤了 既然他会过滤 那我们就将计就计

使他的过滤后成为能使用的payload

.htaccess

.htaccess文件是Apache服务器中的一个配置文件,它负责相关目录下的网页配置,通过.htaccess文件可以实现网页301重定向、自定义404页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能。

我们先写一个txt文档 然后将文件改名为 .htaccess

内容如下

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NN3vuYYd-1583513967582)(QQ截图20200307003133.png)]

这个什么意思呢 就是把名字 含2的文件用php解析

那这样 我们上传的2.png就可以作为php用了

我们先上传我们的.gtaccess 然后上传2.png

我们先访问一下2.png

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nmoibQ7Y-1583513967582)(QQ截图20200307003200.png)]

可以看到前面乱码 是之前模仿的文件头 而

<?php @eval($_POST['hack']) ?>没有显示 这证明php被解析了

连蚁剑 得flag

在这里插入图片描述

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CTFHub是一个CTF(Capture The Flag)竞赛平台,提供了丰富的技能树来帮助学习者提升Web基础认证的能力。下面是CTFHub技能树中关于Web基础认证的内容: 1. HTTP协议:了解HTTP协议的基本原理和常见的请求方法(GET、POST等),了解HTTP请求和响应的结构。 2. URL编码和解码:学习URL编码和解码的原理和常见的编码方式,如URL编码中的%20代表空格。 3. Cookies:了解Cookies的作用和原理,学习如何使用Cookies进行用户认证和状态管理。 4. Session管理:学习Session的概念和原理,了解如何使用Session进行用户认证和状态管理。 5. 基本认证(Basic Authentication):学习基本认证的原理和流程,了解如何使用用户名和密码进行认证。 6. 表单认证(Form-based Authentication):学习表单认证的原理和流程,了解如何使用表单提交用户名和密码进行认证。 7. Token认证:学习Token认证的原理和流程,了解如何使用Token进行用户认证和状态管理。 8. CSRF攻击与防御:学习CSRF(Cross-Site Request Forgery)攻击的原理和常见的防御措施9. XSS攻击与防御:学习XSS(Cross-Site Scripting)攻击的原理和常见的防御措施10. SQL注入攻击与防御:学习SQL注入攻击的原理和常见的防御措施。 以上是CTFHub技能树中关于Web基础认证的内容,通过学习这些知识,你可以提升自己在Web安全领域的认证技能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值