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

命令执行 [SWPUCTF 2021 新生赛]babyrce

打开题目

我们看到题目说cookie值admin等于1时,才能包含文件

bp修改一下得到

访问rasalghul.php,得到

题目说如果我们get传入一个url且不为空值,就将我们get姿势传入的url的值赋值给ip

然后用正则过滤了 /  /,如果ip的值没有 /  /符号,则用shell_exec函数来执行变量ip中的命令,并输出结果

那我们直接读取flag

?url=cat flag

题目应该是过滤了空格

那我们就要想一下怎么绕过空格

我们想到用IFS

可能flag也被过滤了

知识点:

  • 绕过空格的方法有
注释符/**/绕过
非断开空格%a0

(非断开空格是一种特殊的空格字符,与常规空格不同,它在文本中不会引起换行或断开。在URL编码中,非断开空格通常被表示为 %a0。)

括号绕过空格 

(如果空格被过滤,括号没有被过滤,可以用括号绕过。在MySQL中,括号是用来包围子查询的。任何可以计算出结果的语句,都可以用括号包围起来。而括号两端,可以没有多余的空格)

例如:select(table_name)from(information_schema.tables)where(table_schema)='数据库名'

双写绕过空格
%20绕过空格

linux下绕过空格的方法
$IFS
${IFS}
$IFS$1 //$1改成$加其他数字貌似都行
<
<>
{cat,flag.php}  //用逗号实现了空格功能
%20
%09
  • shell_exec() 函数

shell_exec() 函数是 PHP 中的一个内置函数,用于通过 shell 执行命令并以字符串形式返回完整输出

相关文章:

  • 服务器直接配置免密登录
  • 你想改win11系统中窗口、菜单等的字体? 微软不想让你改
  • 环境搭建及源码运行_java环境搭建_idea版本下载及安装
  • flutter自定义地图Marker完美展示图片
  • springboot(ssm电商应用系统 在线购物系统Java系统
  • Java 栈和队列的交互实现
  • Vue3使用 xx UI解决布局高度自适应
  • 机器视觉系统选型-高图像精度
  • 旅游景区项目信息化建设运营方案:PPT47页,附下载
  • ChatGPT如何计算token数?
  • 在Windows系统平台下部署运行服务端Idea工程的jar服务
  • 摄像头画面作为电脑桌面背景
  • 14:00面试,14:08就出来了,问的问题有点变态。。。
  • 【小白专用】php pdo sqlsrv 类,php连接sqlserver
  • 如何用 CleanMyMac 来保护 Mac 隐私
  • Facebook AccountKit 接入的坑点
  • Javascript编码规范
  • Linux快速复制或删除大量小文件
  • MySQL用户中的%到底包不包括localhost?
  • scrapy学习之路4(itemloder的使用)
  • Spring Security中异常上抛机制及对于转型处理的一些感悟
  • Synchronized 关键字使用、底层原理、JDK1.6 之后的底层优化以及 和ReenTrantLock 的对比...
  • Terraform入门 - 3. 变更基础设施
  • vue学习系列(二)vue-cli
  • 欢迎参加第二届中国游戏开发者大会
  • 坑!为什么View.startAnimation不起作用?
  • 如何优雅的使用vue+Dcloud(Hbuild)开发混合app
  • 验证码识别技术——15分钟带你突破各种复杂不定长验证码
  • 硬币翻转问题,区间操作
  • ​力扣解法汇总946-验证栈序列
  • #13 yum、编译安装与sed命令的使用
  • #QT(TCP网络编程-服务端)
  • (1)(1.19) TeraRanger One/EVO测距仪
  • (7)STL算法之交换赋值
  • (附源码)springboot 个人网页的网站 毕业设计031623
  • (四)Linux Shell编程——输入输出重定向
  • (一)使用IDEA创建Maven项目和Maven使用入门(配图详解)
  • (已更新)关于Visual Studio 2019安装时VS installer无法下载文件,进度条为0,显示网络有问题的解决办法
  • (转)chrome浏览器收藏夹(书签)的导出与导入
  • .net on S60 ---- Net60 1.1发布 支持VS2008以及新的特性
  • .net 后台导出excel ,word
  • .Net 中Partitioner static与dynamic的性能对比
  • .NET/C# 获取一个正在运行的进程的命令行参数
  • .NET/C# 阻止屏幕关闭,阻止系统进入睡眠状态
  • .Net程序猿乐Android发展---(10)框架布局FrameLayout
  • .NET分布式缓存Memcached从入门到实战
  • .Net中间语言BeforeFieldInit
  • @font-face 用字体画图标
  • @取消转义
  • [acm算法学习] 后缀数组SA
  • [boost]使用boost::function和boost::bind产生的down机一例
  • [BUG]vscode插件live server无法自动打开浏览器
  • [BZOJ5250][九省联考2018]秘密袭击(DP)
  • [C++]高精度 bign (重载运算符版本)
  • [Java]快速入门二叉树,手撕相关面试题