ctfshow web50的疑问 --web容器环境

# 前言

看群里有师傅学习到ctfshow命令执行web50这里提出疑问,为什么这里为啥c=tac<fla?.php|| 不行呀,想起来之前刷到这里我也有这个疑问

前面的铺垫可以学习到

tac fla?.php
tac f*
ta\c fla''g.php
tac<fla''g.php
1
2
3
4

通过这道题的前几道题的铺垫可以学习到<重定向符可以把文件的内容输出到tac命令中,?,.通配符可以绕过直接写文件名的限制,但是两个玩法结合在一起就失效了

ta\c<fla?.php
1

# 测试

# 本地ubuntu测试

在本地ubuntu测试发现,这条命令是可以正常执行的

0

查看,Ubuntu的默认shell环境是/bin/bash

感觉靶机的版本或者环境不同等引发的问题

查看一下靶机操作系统信息

1

确定靶机是alpine的操作系统,装个虚拟机测试一下

# Alpine Linux虚拟机测试

在本地Alpine测试发现,果然重定向符<和通配符?结合在一起就失效了,找不到文件

0

查看,Alpine的默认shell环境是/bin/ash

03

# 总结

Alpine Linux不支持<重定向符和通配符?结合使用。

Ubuntu的默认shell环境是/bin/bash,功能更强大

Alpine的默认shell环境是/bin/ash,许多 bash 特有的扩展功能不可用,导致两者在处理命令执行时存在差异

参考:

最后一次更新于: 2024/10/31, 18:11:37