这次主要讲述echo的一个基本使用语法,echo在渗透测试中也是经常使用的,我们可以通过一个简单的shell来使用echo写入一个一句话木马,或者通过echo将linux的公钥写入到远程服务器中作为认证key,从而实现免密登录,另外通过echo还可以执行系统命令!
echo最基本的就是作为输出,基本使用语法如下:
1
|
echo
要输出的内容
|
1
2
3
4
|
root@kali:~
/eth10/eth10
# echo hello eth10
hello eth10
root@kali:~
/eth10/eth10
# echo "hello eth10"
hello eth10
|
但是如果要输出的内容中还有一些特殊字符,那么就极有可能被吃掉!
1
2
|
root@kali:~
/eth10/eth10
# echo "hello eth10 "welcome" "
hello eth10 welcome
|
此时,我们可以使用-e这参数来开启转义!
1
2
3
|
root@kali:~
/eth10/eth10
# echo -e "hello eth10 \"welcome\" "
hello eth10
"welcome"
root@kali:~
/eth10/eth10
#
|
这样我们就可以输出特殊字符了!并且可以使用转义字符\n来实现换行!但是\n前最好留一个空格!
1
2
3
|
root@kali:~
/eth10/eth10
# echo -e "hello eth10 \n\"welcome\" "
hello eth10
"welcome"
|
另外对于单引号,我们是不需要加转义字符的!
1
2
3
4
5
6
7
|
root@kali:~
/eth10/eth10
# echo -e "hello eth10\n\"welcome\" 'eth10'"
hello eth10
"welcome"
'eth10'
root@kali:~
/eth10/eth10
# echo -e "hello eth10\n\"welcome\" \'eth10\'"
hello eth10
"welcome"
\'eth10\'
root@kali:~
/eth10/eth10
#
|
通过对echo的简单使用,只有能输出内容,那么就可以使用重定向符> 或者追加符>>来将我们输出的内容写入到文件中了!
另外,我们还可以通过``这个符号来通过echo执行系统命令,即使没有自动换行!
1
2
3
4
5
|
root@kali:~
/eth10/eth10
# echo `whoami`
root
root@kali:~
/eth10/eth10
#
root@kali:~
/eth10/eth10
# echo `cat /etc/passwd`
root:x:0:0:root:
/root
:
/bin/bash
daemon:x:1:1:daemon:
/usr/sbin
:
/usr/sbin/nologin
bin:x:2:2:bin:
/bin
:
/usr/sbin/nologin
|
是不是我们就可以使用wget下载任意文件到服务器上面了呢?或者直接使用nc来获取一个反向连接呢?
最后说一下,在windows系统中,使用echo.|命令,来执行系统命令!
1
2
3
4
5
|
F:\eth10-CTF-Toolkits\CTF工具包\注入检测\Python27\sqlmap1.1.8>
echo
. |
whoami
etxx\etxx
F:\eth10-CTF-Toolkits\CTF工具包\注入检测\Python27\sqlmap1.1.8>
echo
.|
whoami
etxx\etxx
F:\eth10-CTF-Toolkits\CTF工具包\注入检测\Python27\sqlmap1.1.8>
|
本文转自 eth10 51CTO博客,原文链接:http://blog.51cto.com/eth10/1958208