ctf show web 入门42

打开靶场发现代码接收一个GET参数$c,并且将其传递给system()函数执行系统命令。但是在命令末尾强行拼接了一个>/dev/null 2>&1

/dev/null:将标准输出重定向到"黑洞",即你看不到命令执行的结果

2>&1:将标准错误也重定向到标准输出,导致也看不到命令执行结果

所以无论输入什么内容,页面都不会直接回显

faxain

我们可以尝试使用换行符%0a强制换行,让重定向的内容在下一行不再影响上一行的内容

我们先尝试查看当前目录下有什么文件所以构造的payload为:?c=ls%0a

发现有flag.php文件

所以我们尝试查看flag.php中的内容

payload为:?c=cat flag.php%0A

查看源代码得到flag

%0a之所以可以成功是因为在Linux终端中,换行符等同于按下回车键当代码执行 system(c." \>/dev/null 2\>\&1"); 时,如果你的 c 是 ls%0a,在系统底层执行的命令实际上变成了:

cat flag.php

dev/null2>&1

所以当执行cat flag.php后这一行就已经结束了,他会直接把输出结果输出到屏幕,后面的重定向限制根本管不到第一行的输出

相关推荐
木斯佳3 分钟前
前端八股文面经大全:字节跳动-存储部门一面(2026-05-29)·面经深度解析
前端·状态模式
ayqy贾杰8 分钟前
有AI了,我当超大头兵还苟得住吗?
前端·后端·架构
AI2中文网11 分钟前
App Inventor 2 鸿蒙先行版开发进展:从 Android 到 HarmonyOS 的积木编程迁移实录
android·低代码·华为·harmonyos·app inventor
Aotman_12 分钟前
JavaScript数组对象中指定字段转换
java·开发语言·前端·javascript·vue.js·前端框架·es6
姓蔡小朋友18 分钟前
React基础
前端·react.js·前端框架
__Witheart__27 分钟前
Android 驱动编译为模块或者built-in内核
android·linux·数据库
IT_陈寒33 分钟前
Vue的动态组件坑了我整整一天!
前端·人工智能·后端
恋猫de小郭35 分钟前
Flutter 最好的 AI 自动化测试工具:Patrol
android·前端·flutter
Cobyte37 分钟前
AI 的个人便签纸:Claude Code 的 TodoWrite 模式
前端·后端·aigc
风兮雨露1 小时前
Java 从入门到精通,前端资料
java·开发语言·前端