ctfshow -web文件上传

ctfshow -web文件上传

151-JS验证

Content-Type:image/png

右击查看源代码,可知,只接收后缀名是png的images
在这里插入图片描述

上传一张png图片,显示成功
在这里插入图片描述

上传一张GIF,显示失败(因为不包含GIF格式)
在这里插入图片描述

光标在 上传图片 右击->检查
在这里插入图片描述

将png改为php即可上传后门代码(一句话木马)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

上传成功
在这里插入图片描述

访问刚刚上传的一句话木马,调用system函数(调用系统命令)获取当前文件下面的列表,发现并没有我们需要的flag文件
在这里插入图片描述

查看上一级目录,发现有一个flag.php
在这里插入图片描述

用tac(linux里面的命令)命令读取flag.php里的flag
在这里插入图片描述

拿到flag:ctfshow{991687e3-96d7-45e4-90f5-0a8ff19261b3}

152-JS验证+MIME验证

右击查看源代码,发现和151关一样,只接收后缀名是png的images
在这里插入图片描述

修改前端代码,将png->php
在这里插入图片描述

上传后门代码,发现文件类型不合规
在这里插入图片描述

抓包,发现类型是application/octet-stream
在这里插入图片描述

将content-type改为image/png即可上传成功
在这里插入图片描述
在这里插入图片描述

访问刚刚上传的一句话木马,调用system函数(调用系统命令)获取当前文件下面的列表,发现是我们上传的一句话木马
在这里插入图片描述

尝试查看上一级目录,发现有一个flag.php
在这里插入图片描述

用tac(linux里面的命令)命令读取flag.php里的flag
在这里插入图片描述

拿到flag:ctfshow{74055962-d2d5-4a09-8189-39b1f80e5c7f}

153-JS验证+user.ini

参考文献https://www.cnblogs.com/NineOne/p/14033391.html

右击查看源代码,发现和151关一样,只接收后缀名是png的images
在这里插入图片描述

改前端后缀名
在这里插入图片描述

上传一句话木马,发现文件类型不合规
在这里插入图片描述

抓包,改文件类型
在这里插入图片描述

仍然上传错误
在这里插入图片描述

使用.user.ini : auto_prepend_file=hhh.png [参考文献https://www.cnblogs.com/NineOne/p/14033391.html]
在这里插入图片描述

再上传1.png ,并写上后门代码
在这里插入图片描述

调用system函数(调用系统命令)获取当前文件下面的列表
在这里插入图片描述

拿到flag:ctfshow{154046dd-cede-4623-a986-70b9c7302788}

154-J9验证+user.ini+短标签 过滤了 <?php

右击查看源代码,发现和151关一样,只接收后缀名是png的images
在这里插入图片描述

改前端后缀名
在这里插入图片描述

上传后门代码,发现文件不合规
在这里插入图片描述

抓包 更改文件类型 .user.ini : auto_prepend_file=1.png
在这里插入图片描述

再上传1.png ,并写上后门代码,发现错误 -> 过滤了==<?php==
在这里插入图片描述

可以使用以下4种方法进行绕过

<?echo'123';?>    //前提是开启配置参数short_open_tags=on
<?=(表达式)?>     //不需要开启参数设置
<% echo'123';%>   //前提是开启配置参数asp_tags=on
<script language="php">echo '1';</script>  //不需要修改参数开关

在这里插入图片描述

调用system函数(调用系统命令)获取当前文件下面的列表
在这里插入图片描述

拿到flag:ctfshow{ad3fef11-7c0e-4dc5-b3b8-0d6d0b239c27}

155-J9验证+user.ini+短标签 过滤了 <?php (同154关)

改前端后缀名
在这里插入图片描述

抓包 ->更改文件类型 .user.ini : auto_prepend_file=1.png
在这里插入图片描述

使用<?=eval($_POST[x]$);?>进行绕过
在这里插入图片描述

调用system函数(调用系统命令)获取当前文件下面的列表
在这里插入图片描述

拿到flag:ctfshow{2b2933a8-0547-4f62-981e-0cab37db82cb}

156-JS验证+user.ini+短标签+过滤

改前端后缀名
在这里插入图片描述

抓包 ->更改文件类型 .user.ini : auto_prepend_file=1.png
在这里插入图片描述

使用<?=eval($_POST[x]$);?>进行绕过,发现报错,原因是==[x]==
在这里插入图片描述

所以使用 {} 或()代替 [ ] 进行绕过
在这里插入图片描述

调用system函数(调用系统命令)获取当前文件下面的列表
在这里插入图片描述

拿到flag:ctfshow{389c9556-2b73-4dd5-8ed6-8845a691c645}

157 -JS验证+user.ini+短标签+过滤

改前端后缀名
在这里插入图片描述

抓包 ->更改文件类型 .user.ini : auto_prepend_file=1.png
在这里插入图片描述

使用<?=eval($_POST[x]$);?>进行绕过,发现报错,原因是过滤了 ;等。所以我们可以直接使用tac …/flag.php命令绕过,但是也过滤了 .php ,直接使用正则表达式 flag* 来绕过
在这里插入图片描述

访问网址,拿到flag:ctfshow{492fdc04-ad7f-4d2f-8586-4b691f53922e}
在这里插入图片描述

158 -JS验证+user.ini+短标签+过滤(同157)

改前端后缀名
在这里插入图片描述

抓包 ->更改文件类型 .user.ini : auto_prepend_file=1.png
在这里插入图片描述

使用tac …/flag*命令绕过
在这里插入图片描述

访问网址,拿到flag:
在这里插入图片描述

159 -JS验证+user.ini+短标签+过滤

改前端后缀名
在这里插入图片描述

抓包 ->更改文件类型 .user.ini : auto_prepend_file=1.png
在这里插入图片描述

使用tac …/flag*命令绕过,出现错误。原因:过滤了()
在这里插入图片描述

使用<?=`tac ../flag*`?>进行绕过。 反引号``:PHP尝试将反引号中的内容作为shell命令来执行,并将其输出信息返回。
在这里插入图片描述

拿到flag:ctfshow{3d7403e6-410c-4680-8ca9-764f7c1ce577}
在这里插入图片描述

160 JS验证+user.ini+短标签+过滤

改前端后缀名
在这里插入图片描述

抓包 ->更改文件类型 .user.ini : auto_prepend_file=1.png
在这里插入图片描述

使用<?=`tac ../flag*`?>出现错误,原因:过滤了``
在这里插入图片描述

日志:记录访问者地址,访问者信息,访问者UA头。思路:通过访问一个地址,UA头改为后门代码,利用.user.ini包含日志文件,去触发访问者UA头里面的后门代码。
日志文件根据中间件决定。nginx日志路径/var/log/nginx/
所以使用 /var/log/nginx/绕过,但是会进行过滤。所以使用<?=include"/var/lo"."g/nginx/access.lo"."g"?>拼接进行绕过
在这里插入图片描述

访问路径
在这里插入图片描述

发现日志文件记录浏览器信息,抓包->将后门代码写入UA中,再换一个不存在的地址
在这里插入图片描述

成功写入日志文件中
在这里插入图片描述

访问地址,读取flag
在这里插入图片描述

拿到flag(右击->查看源代码):ctfshow{9a122e6d-fd6d-4679-9b86-5126e1cda5b6}
在这里插入图片描述

161 JS验证+user.ini+短标签+过滤+文件头

改前端后缀名
在这里插入图片描述

文件头部检测是否为图片格式文件 GIF文件格式的版本号->GIF89a

抓包 ->更改文件类型 .user.ini : auto_prepend_file=1.png 加上 GIF89a证明是GIF 因为过滤空格,所以要换行
在这里插入图片描述

使用<?=include"/var/lo"."g/nginx/access.lo"."g"?>进行绕过
在这里插入图片描述

在UA头里面写上后门代码
在这里插入图片描述

上传日志成功
在这里插入图片描述

使用命令执行日志里的后门文件
在这里插入图片描述

拿到flag:ctfshow{7d673a80-87c0-451a-9908-d03b853a7ea9}

在这里插入图片描述

  • 29
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

我不是陆神

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

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

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

打赏作者

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

抵扣说明:

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

余额充值