CTFHUB-文件上传

目录

一.使用工具

二.实操

1.无验证

2.JS前端验证

代码绕过

浏览器设置绕过

bp更改数据

3..htaccess

4.MIME绕过

尝试上传jpg文件

尝试更改MIME类型

5.00截断

6.双写绕过



一.使用工具

中国蚁剑 kali bp

二.实操

1.无验证

打开环境

 文件上传 并且提示我们是无限制的

于是我们了解到i我们可以运用一句话木马 进行漏洞上传

<?php @eval($_POST['A']);?>

我使用kali 在桌面新建立一个文件 输入该代码保存

注意要改名字 我在这出现了问题是我没改文件名字 一直上传失败 于是我又在后缀上加.php才上传成功

kali会自动保存为php类型

于是我们尝试直接上传

上传成功

出现了路径 于是我们打开中国蚁剑

打开我们安装蚁剑的文件夹

在此处打开终端

./AntSword 输入代码启动蚁剑

 于是我们添加数据

将URL添加进去

注意 添加的不只是地址栏的URL 还要加上相对路径

challenge-f3c6532034226333.sandbox.ctfhub.com:10800/upload/1

 发现失败了 试错后发现 我们一定要把上传文件的后缀名改为.php才可以

重新上传

 发现可以了于是我们直接进入后台 发现flag

2.JS前端验证

打开环境

提示我们要绕过js前端验证 于是我们先正常一句话木马进行上传

<?php @eval($_POST['A']);?>   记得把文件后缀名加上.php

反馈i无法上传 于是我们进行检查 我们应该上传什么样的文件 

F12打开检查查看代码

发现只能上传这三种 于是我们改后缀看看是不是能上传

发现上传成功

现在有三种方法进行绕过

代码绕过

在F12中 我们审计代码发现我们可以直接关闭JS验证

 我们把那个打勾取消

 然后我们进行.php文件的上传

发现上传成功 

所以我们知道我们可以尝试在检查中进行代码的删除进行绕过上传

浏览器设置绕过

我们知道是JS绕过

即javascript验证

 于是我们在URL上输入about:config 进入浏览器设置

搜索javascript

 我们将javascript.enabled 关闭

 然后进行文件上传

发现可以直接进行上传

于是我们了解可以通过更改浏览器设置进行JS绕过

bp更改数据

我们这个要运用bp进行操作

我们先将一句话木马改成能上传的后缀

进行文件上传 bp进行抓包

 打开代理

打开bp抓包

选择上传开始抓包

抓到了我们上传的包 发现我们的一句话木马的代码也在里面

于是我们更改文件后缀名

 改成.php

 forward进行放包

 发现上传成功

 于是我们知道可以通过bp进行更改数据进行绕过JS

于是我们进行中国蚁剑来访问后台即可

发现flag

3..htaccess

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

(就是一个文件 然后服务器发现了这个文件就可以运行 同时可以实现让上传的文件名中的恶意代码通过.php形式运行  .htaccess文件的作用就是让别的文件以你指定的方式运行,如.txt文件可以以.php文件的形式运行。)

这个题目我是运用bp进行.htaccess文件上传

打开环境

F12检查进行代码审计

发现过滤了很多

于是题目提示我们.htaccess文件 所以让我们写一个.htaccess文件代替本地文件

 用bp抓包

直接将filename="1.php"改为filename=".htaccess"

application/x.php 改为 text/plain

把文件内容删除改为 AddType application/x-httpd-php .jpg   注意在php 和 .jpg里有一个空格

然后放包

 上传成功 这个时候服务器就知道了我们要把我们上传文件里通过.php形式执行

然后我们上传我们的木马文件 依然用bp进行抓包

将我们的.php改为.jpg 然后放包

然后使用中国蚁剑继续访问

 链接成功

访问后台

 找到flag

在此我们知道了.htaccess是给黑客后台 能让上传的.jpg/.html等文件中php代码实现执行的

并且注意在AddType application/x-httpd-php .jpg中见有一个空格在php .jpg中间 不然无法实现

4.MIME绕过

MIME就是对文件类型的检测 而不是后缀名这么简单 如果是正常的改后缀名即可 但是 MIME就是对文件的类型的检测

于是我们只要将MIME的检测结果更改成我们上传的类型即可

 

 打开环境

我们尝试上传jpg文件

上传成功 于是我们尝试直接注入

先用bp进行抓包

然后更改后缀名 注入

 成功然后用中国蚁剑注入

 得到flag

尝试更改MIME类型

抓包

 我们将content-Type 改为 image/png(其他类型)

 发现上传成功

于是照常中国蚁剑找flag即可

5.00截断

简单来说就是php版本<5.3.4的网页,在url中%00表示ascll码中的0 ,而ascii中0作为特殊字符保留,表示字符串结束,所以当url中出现%00时就会认为读取已结束

00截断的触发条件较为苛刻,所以在靶机上出现的概率较小

打开环境

我们将我们要上传的文件后缀名改为.jpg的类型,但是我们需要00截断和php执行

所以1.php更改为1.php%00.jpg

然后上传该文件用bp抓包

我们从源代码里会发现rand(1,99)随机数的代码 所以我们找不到上传地址,于是我们用00截断把随机数失效掉

在上传地址的地方加上我们的文件名

 然后我们的地址就是

URL+upload/1.php

用中国蚁剑注入即可

6.双写绕过

我们打开环境尝试上传文件

我选择直接上传php文件

 发现上传成功但是没有显示后缀名

我们就想会不会是过滤了php类型

打开源代码

发现过滤的

我们考虑双写绕过

原理就是在计算机中他会将识别的过滤类别过滤 但是在后缀中写两次后缀名 并且混合在一起 就会过滤其中一个 然后过滤完如果还是php就会执行

例如这道

我们更改文件后缀名为pphphp

他就会过滤了红色的php 而过滤完系统还是识别到了php所以执行

上传成功 链接中国蚁剑即可得到flag

至此 CTFHUB 文件上传 结束

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值