Bash 如何使用<;在linux shell中向stdin发出多个命令<&书信电报;printf
我正在使用DVWA高级命令注入进行训练。我知道Bash 如何使用<;在linux shell中向stdin发出多个命令<&书信电报;printf,bash,stdin,code-injection,penetration-testing,Bash,Stdin,Code Injection,Penetration Testing,我正在使用DVWA高级命令注入进行训练。我知道|有一个漏洞,但我正在寻找一种获得如下输出的方法: root@vwksOffensive:~# ping -c 4 10.0.0.1 ; ls PING 10.0.0.1 (10.0.0.1) 56(84) bytes of data. --- 10.0.0.1 ping statistics --- 4 packets transmitted, 0 received, 100% packet loss, time 3066ms a a_p
|
有一个漏洞,但我正在寻找一种获得如下输出的方法:
root@vwksOffensive:~# ping -c 4 10.0.0.1 ; ls
PING 10.0.0.1 (10.0.0.1) 56(84) bytes of data.
--- 10.0.0.1 ping statistics ---
4 packets transmitted, 0 received, 100% packet loss, time 3066ms
a a_post Documenti Immagini Modelli Musica pocl rockyou.txt Scrivania WebScarab.properties
Add b hash JavaSnoop.properties mtu plain Pubblici Scaricati Video
root@vwksOffensive:~#
$substitutions = array(
'&' => '',
';' => '',
'| ' => '',
'-' => '',
'$' => '',
'(' => '',
')' => '',
'`' => '',
'||' => '',
);
从
<<<printf "[ping ip argument] \u003B the_command_I_choose"
但我无法做到这一点:
root@vwksOffensive:~# ping -c 4 <<<printf "10.0.0.1 \u003b ls"
PING 10.0.0.1 \u003b ls (10.0.0.1) 56(84) bytes of data.
--- 10.0.0.1 \u003b ls ping statistics ---
4 packets transmitted, 0 received, 100% packet loss, time 3075ms
root@vwksOffensive:~#
甚至不是这个:
root@vwksOffensive:~# ping -c 4 <<<printf "10.0.0.1 ; ls"
PING 10.0.0.1 ; ls (10.0.0.1) 56(84) bytes of data.
--- 10.0.0.1 ; ls ping statistics ---
4 packets transmitted, 0 received, 100% packet loss, time 3075ms
root@vwksOffensive:~#
我进行了深入的研究,如果可以这样说的话,最相似的是这个问题的第一个答案:
不幸的是,这并没有完全帮助我,所以我决定把我的问题贴在这里,因为我确信,在我的无知中,我遗漏了一些东西
解决方案必须包含字符
或任何其他需要的特殊字符,用unicode编码。用空白字符替换的禁止字符如下:
root@vwksOffensive:~# ping -c 4 10.0.0.1 ; ls
PING 10.0.0.1 (10.0.0.1) 56(84) bytes of data.
--- 10.0.0.1 ping statistics ---
4 packets transmitted, 0 received, 100% packet loss, time 3066ms
a a_post Documenti Immagini Modelli Musica pocl rockyou.txt Scrivania WebScarab.properties
Add b hash JavaSnoop.properties mtu plain Pubblici Scaricati Video
root@vwksOffensive:~#
$substitutions = array(
'&' => '',
';' => '',
'| ' => '',
'-' => '',
'$' => '',
'(' => '',
')' => '',
'`' => '',
'||' => '',
);
如果“您选择的命令”在如下变量中:
mycmd="ls -l"
然后,您可以将您的命令和其他命令包装在一个子shell中,该子shell由以下内容包围:()
子shell的输出可以重新定向到您想要的任何其他命令中。e、 g.tail、grep、>$log等
要发送ping的ip地址也可以是变量名:
myip=10.0.0.1
(ping $myip ; $mycmd ) > logfile.txt
现在还不清楚你为什么要发送它,也不清楚你想做什么:
ping-c4谢谢大家的支持,我想澄清一下上下文,重点关注基本问题。1)字段是dvwa(该死的web易受攻击的应用程序)的命令注入,在后端执行的命令是://Set blacklist$substitutions=array('&'=>'','=>'',''.''''=>'',''.'=>'','''.'''''=>'','''.'=>'','=>'',''=>'',''=>'','=>'','''.''=>''''.'''.'.'//删除数组中的任何字符(黑名单)$target=str_replace(数组_键($substitutions),$substitutions,$target)$cmd=shell_exec('ping-c4'.$target);因此,我们正在讨论在命令“ping-c4[IP]”中注入一些东西,而不使用前面提到的字符。无法在其他行中添加变量