DVWA 通关记录 2 - 命令注入 Command Injection
命令注入
简单来说,命令注入最基本的就是掌握如下若干命令连接符的意义,然后根据实际情况选择。
需要提一个小的注意点,如果返回的是 64 位包,那么 unix 体系的操作系统的概率大,如果是 32 位包,windows 体系的概率大。当然整个返回体也不是很一样,可以根据这个来尝试后边的命令。
分号 ;
命令依次执行 , 如果前面命令执行失败,后边命令直接执行,所以这个是比较常用的方式,不需要等待前面 ping 的时间。
比如 ping 127.0.0.1;tail /etc/passwd
返回结果:
|| 逻辑或
这个比较好理解,这种情况,左侧命令执行成功就直接返回了,因为 true || false 结果为 true,所以只要左侧成功,右侧就被“短路”了。
&& 逻辑与
与上方|| 相对,如果左侧执行失败,则右侧不会执行。因为 false&&true 结果为 false,这种情况下 右侧依然被“短路”。
& 后台执行
在 linux 平台上,如果命令后边跟一个 & 则意味着该命令后台执行。
所以 ping 127.0.0.1&tail /etc/passwd
意味着,ping 在后台执行,只返回了后边命令:
| 管道符
前面命令的输出,作为后边命令的输入,经常使用管道符作筛选使用,比如
x|tail /etc/passwd|grep "www-data"
版权声明: 本文为 InfoQ 作者【Todd-Lee】的原创文章。
原文链接:【http://xie.infoq.cn/article/a9ed9732bf08c2f3495749f21】。文章转载请联系作者。
评论