Bash 如何使用<;在linux shell中向stdin发出多个命令<&书信电报;printf

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

我正在使用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_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 &lt;&lt;&lt;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 &lt;&lt;&lt;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]”中注入一些东西,而不使用前面提到的字符。无法在其他行中添加变量