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

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.kler.cn/news/363159.html

相关文章:

  • Selenium + Titanium代理获取请求的接口数据
  • 在示波器里面外触发输入通道(EXT TRIG)什么作用?
  • 安装Openeuler出现的问题
  • Qt/C++学习系列之简单记录1
  • 2024年10月22日练习
  • 爬虫日常实战
  • 三大智能体平台深度对比:字节Coze、百度AppBuilder、智谱智能体优劣解析
  • MATLAB中head函数用法
  • 热门伤感短视频素材网站推荐,轻松获取创作灵感
  • 【Linux笔记】Linux命令与使用
  • 前端跨系统请求接口报错
  • Bug:通过反射修改@Autowired注入Bean的字段,明确存在,报错 NoSuchFieldException
  • 可编辑38页PPT | 柔性制造企业数字化转型与智能工厂建设方案
  • 分享一个IDEA里面的Debug调试设置
  • 驾校小程序:一站式学车解决方案的设计与实践
  • 内网穿透
  • 如何使用 pnpm 进行打补丁patch操作?推荐两个方法
  • 【小红书一面】Kafka 是如何选择 Leader的?
  • Unity目录居然这么写就不会被引入到项目内
  • python第五次作业
  • 手机怎么玩GTA5?GameViewer远程助你手机畅玩GTA5侠盗飞车
  • 【RoadRunner】自动驾驶模拟3D场景构建 | 软件简介与视角控制
  • etl-查询错误log日志和oracle删除数据表空间
  • ansible一键部署k8s集群
  • 20241024-帖子发布
  • Ollama