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

练[FBCTF2019]RCEService

[FBCTF2019]RCEService

文章目录

      • [FBCTF2019]RCEService
      • 掌握知识
      • 解题思路
      • 关键paylaod

在这里插入图片描述

掌握知识

json字符串格式,命令失效(修改环境变量)–绝对路径使用linux命令,%0a绕过preg_match函数,代码审计

解题思路

  1. 打开题目链接,发现可以通过json格式传递命令进行命令执行,但是不知道json的键名,输入ls显示无法识别,查看源代码后发现该输入框的name信息为cmd,确定这就是键,构建paylaod{"cmd":"ls"},抓包查看成功回显信息

image-20231002181922327

image-20231002181925042

image-20231002181944684

  1. 发现命令正常执行,准备查看根目录的文件,由于是get传参,所以空格先编码为%20,但是发现回显hacking,经过测试发现是对/进行了过滤

image-20231002182126152

image-20231002182206417

  1. 既然不能使用/,那就直接使用cat命令查看一下index.php文件,发现还是不行,尝试更改cat的格式进行绕过,发现还是不行。

image-20231002182313927

  1. 仔细想想,既然存在过滤,多半碰到的函数都是preg_match,该函数可以通过换行符%0a和数组进行绕过,因为该函数只会匹配第一行数据,除非设置了参数。所以默认为preg_match函数过滤,构建paylaod{%0a"cmd":"cat%20index.php"%0a}。发现还是不行,但是可以执行ls /命令了,证明前面猜测没问题,还绕过来了过滤

image-20231002182603939

image-20231002182846896

  1. 那为什么cat命令还不行执行呢,都已经绕过了过滤。其实在没有限制的情况下命令还不能执行,只能是该命令被屏蔽了,但是使用其他查看文件的命令也都不可以。
  2. 那可能就是环境变量被更改了,需要使用命令的绝对路径来执行,也就是/bin/cat。再次构建paylaod{%0a"cmd":"/bin/cat%20index.php"%0a}。成功回显了文件内容,还得到了一个病毒提示…

image-20231002183305754

  1. 发现过滤函数确实是preg_match,代码的一开始就将环境变量修改了,既然flag不在根目录下,那很可能就在这个环境变量中,查看环境变量目录结构,发现了flag目录,cat命令直接拿下flag

image-20231002183519851

image-20231002183510815

关键paylaod

{"cmd":"ls"}{"cmd":"ls%20/"}{"cmd":"cat%20index.php"}{%0a"cmd":"ls%20/"%0a}{%0a"cmd":"cat%20index.php"%0a}{%0a"cmd":"/bin/cat%20index.php"%0a}{%0a"cmd":"ls%20/home/rceserive"%0a}{%0a"cmd":"/bin/cat%20/home/rceserive/flag"%0a}
http://www.lryc.cn/news/185552.html

相关文章:

  • php实战案例记录(21)sprintf函数
  • 【数据结构-二叉树 九】【树的子结构】:树的子结构
  • 七张图解锁Mybatis整体脉络,让你轻松拿捏面试官
  • 力扣之删除有序数组中的重复项
  • pnpm、npm、yarn 包管理工具『优劣对比』及『环境迁移』
  • 【AntDesign】多环境配置和启动
  • Unix Network Programming Episode 78
  • 学习笔记(css穿透、vue-cookie、拦截器、vuex、导航守卫、token/Cookie、正则校验)
  • Day4:Linux系统编程1-60P
  • 【HuggingFace】Transformers(V4.34.0 稳定)支持的模型
  • oracle 导入数据泵常用语句
  • tensorflow中的常见方法
  • 【周末闲谈】“PHP是最好的语言”这个梗是怎么来的?
  • 四位十进制数字频率计VHDL,仿真视频、代码
  • Unity实现设计模式——策略模式
  • C++基础——数据类型
  • 文本自动输入/删除的加载动画效果
  • PHP8的匿名类-PHP8知识详解
  • WebKit Inside: CSS 样式表的匹配时机
  • <HarmonyOS第一课>从简单的页面开始——闯关习题及答案
  • 视频下载plus+:一款强大的视频下载小程序
  • 扭线机控制
  • Android App启动优化之启动框架
  • zookeeper入门篇之分布式锁
  • leetcode解题思路分析(一百四十九)1297 - 1304 题
  • 你的librosa和scikit-learn打架了吗?
  • 理解自动驾驶感知技术
  • 一款简化Python自然语言处理的开源库
  • 常用Redis界面化软件
  • 电脑散热——液金散热