启动靶机
看到题目中这个输入需要ping的地址,就一下想起来再DVWA靶场做过的命令注入题(当然本题也有可能是sql注入,这取决于我们得到的回显)
之前DVWA的题是需要判断出源码未过滤哪些拼接符,然后我们就可以利用这些未过滤的命令拼接符执行命令。
DVWA靶场做过的命令注入
命令注入解释
为什么可以执行命令注入呢?原因是因为后台代码并未对用户输入的参数ip的值进行过滤就直接与ping命令进行拼接并执行 ,因此我们可以使用常见的命令拼接字符对命令进行拼接,如使用“&”,“|”,“&&”,“||”等,linux系统下还可以使用“;”,“``”。
先ping一下本地回环地址127.0.0.1,看到这个回显就可以将此题暂归入命令执行漏洞中了。(毕竟没有出现sql报错啥的)
根据以往经验,flag一般放在根目录下。所以我们使用常见的命令拼接字符对命令进行拼接,查询下根目录。
我们构造一下查询语句(本题命令拼接符我选了&&
和&
):
[一个ip地址] [命令拼接符] [访问根目录]
即127.0.0.1 && ls /
当然大家还可以选其他的命令拼接符,构造的语句也会不同,可以自己尝试。(有些命令拼接符可能被过滤掉了)
以下是常用的命令拼接符
命令拼接符&、&&、|、||等
命令拼接符:
|、||、&、&&的区别:
&:无论左边是false还是true,右边都执行
&&:具有短路效果,左边是false,右边不执行。
|:无论左边是false还是true,右边都会执行
||:具有短路效果,左边是true,右边不执行。
短路效果:
逻辑运算符的短路效果逻辑运算符当能得到结果时,就不会再继续运算右边的代码,以节省空间以及一定的性能,称为短路效果。
我们查到flag就在根目录下
接着我们来访问这个flag
但是这里要注意一点:如果我们直接输入
127.0.0.1 & cat flag
是访问不到flag的。原因是我们当前所在的目录并不在根目录下。
查找一下当前所在的目录,我们在/var/www/html这个目录
而flag在根目录下,所以我们要输入cat /flag
我们输入127.0.0.1 & cat /flag
成功得到flag
题目类型:命令注入
思路总结:
1、看回显类型
2、判断哪些命令拼接符未被过滤
3、利用未被过滤的命令拼接符查看文件