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

NSSCTF [LitCTF 2025]test_your_nc

 [复现]绕过学的还是太差了,多积累吧

​​​​​​题目

题目:

给了一个python文件

#!/bin/python3
import osprint("input your command")blacklist = ['cat','ls',' ','cd','echo','<','${IFS}','sh','\\']while True:command = input()for i in blacklist:if i in command:exit(0)os.system(command)

这里有一个输入点,并且禁用了catls空格cdecho<${IFS}sh\\
最后会用os.system执行我们输入的内容

思路:

这题对我们的输入存在多个限制,可以用''(空字符串)绕过对cat的限制,而空格这里学了一个新的绕过方法用$IFS


知识点:
$IFS 是 shell 环境变量,全称是 Internal Field Separator(内部字段分隔符),默认值为空格、制表符、换行符,用于分隔命令中的参数
$IFS 的默认值是空格、制表符(Tab)和换行符(Newline)
(部分场景下,$IFS 后必须跟一个数字,如 $IFS$1$IFS$9 等,才能正确替代空格)
这种写法常用于规避对空格的限制(如某些环境禁止使用空格,但允许使用变量替换)


所以最后通过这句获得flag

ca''t$IFS$5flag

注意点:

$后面跟数字1-9

0不可以是因为在特殊情况下0会被认为是sh或者是/bin/sh
 


这题是把$0认为了sh

($0和system的连接可以看这道题题目题解)
10开始不可以是因为,从10开始,需要这么写入${10},单写$10,会被识别成$1和0

http://www.lryc.cn/news/2398591.html

相关文章:

  • 第十九章 正则表达式
  • browser-use Agent 日志链路分析
  • Qwen3高效微调
  • Gitee Wiki:重塑关键领域软件研发的知识管理范式
  • redis的哨兵模式和Redis cluster
  • MySQL计算精度计算加减乘除取模方式和方法总计
  • 农业机器人的开发
  • Swift 解锁 LeetCode 热门难题:不改数组也能找出重复数字?
  • 2025年微信小程序开发:趋势、最佳实践与AI整合
  • 【深度学习】15. Segment Anything Model (SAM) :基于提示的分割新时代
  • Java从入门到精通 - 常用API(一)
  • SQL 筛选出在表1但不在表2中的数据
  • MATLAB实战:实现数字调制解调仿真
  • ccf中学生计算机程序设计入门篇课后题p164页test(1)-2 输入一个数,统计这个数二进制中1的个数
  • 实现Cursor + Pycharm 交互
  • C++标准模板库
  • dvwa6——Insecure CAPTCHA
  • 【机器学习及深度学习】机器学习模型的误差:偏差、方差及噪声
  • 【学习笔记】On the Biology of a Large Language Model
  • 飞腾D2000,麒麟系统V10,docker,ubuntu1804,小白入门喂饭级教程
  • 星野录(博客系统)测试报告
  • 使用 Java 实现一个简单且高效的任务调度框架
  • 2022—2025年:申博之路及硕士阶段总结
  • 项目执行中缺乏灵活应对机制,如何增强适应性?
  • Agentic Workflow是什么?Agentic Workflow会成为下一个AI风口吗?
  • 大模型模型推理的成本过高,如何进行量化或蒸馏优化
  • BUUCTF[极客大挑战 2019]EasySQL 1题解
  • Css样式中设置gap: 12px以后左右出现距离问题解析
  • MySQL问题:count(*)与count(1)有什么区别
  • 大模型 提示模板 设计