【每日打靶练习】vulnhub--Billu_b0x(中)

0x00部署

Billu_b0x靶机:下载地址
宿主机:kali2022
目标:获取root拿到flag文件

0x01信息收集

1.主机发现

$ sudo arp-scan -l
//因为靶机与宿主机在同一网段,所以用二级扫描来发现靶机ip

2.端口扫描

//使用namp命令,-p-指定ip,查看哪些端口开放
$ sudo nmap -p- 靶机ip 
$ sudo nmap -sC -sV -O -p22,80 靶机ip
//-sC常见漏洞脚本扫描
//-sV开放端口服务/版本号
//-O操作系统探测

比较好想到的是,这里只有两个开放端口进行利用,所以流程就是在80端口找一些隐藏路径得到能登录ssh的信息进行提权。

在这里插入图片描述

80端口开放查看页面,一个需要账户密码的登录页面,可能存在sql漏洞:
在这里插入图片描述

3.信息收集(漏洞扫描)

$sudo nmap --script=vuln -p21,80 靶机ip

4.路径爬取

对80端口进行一下路径爬取,寻找隐藏信息

$ dirsearch -u http://ip  //没什么特别的结果,继续
$ dirsearch -u http://ip -f -e php,txt,html   //指定扩展名
$ dirsearch -u http://ip -w /usr/share/seclists/Discovery/web-content/common.txt
//指定字典进行爆破
$ gobuster dir -r -u http://192.168.56.107/site/ -x txt,html,php -w /usr/share/seclists/Discovery/Web-Content/common.txt

爬取到很多网页,检查一下
在这里插入图片描述
依次检查以下可访问页面
在这里插入图片描述
在test.php页面发现一个可用来传参的参数file
在这里插入图片描述

任意文件下载

使用burp抓取test页面–>change request method–>Post方式添加file参数,读取一下/etc/passwd
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

漏洞利用

方法一:

根据22端口开放,可以利用其配置文件进行主机账号密码的利用:
读取配置文件位置,var/www/phpmy/config.inc.php 直接查看账户信息:
在这里插入图片描述

在这里插入图片描述

SSH连接

成功获得权限
在这里插入图片描述

SQL注入(SQLMAP跑步出来)

文件包含漏洞

在这里插入图片描述

试着在url中进行包含,发现没有变化,根据传参方式有post和get两种方式,所以试着用burp抓一下然后进行传参:
抓到的包传给repeater然后修改响应方法
尝试读一下之前看到的页面:
c.php,得到一个数据库用户名密码:
在这里插入图片描述
登录到phpmy页面,输入后进入,检查一下数据库内容:
在这里插入图片描述

在这里插入图片描述
具有bash权限:root,ica

文件上传漏洞

尝试上传一个正常图片,文件名为img.jpg:
在这里插入图片描述
根据代码猜测图片地址:…/uploaded_images/文件名
在这里插入图片描述
尝试文件包含:
在这里插入图片描述

任意文件下载

任意文件下载漏洞和文件包含漏洞的方法类似,区别在于文件包含会将指令作为php来进行解析,而文件下载漏洞会将代码下载下来。

源码审计

利用test页面可以文件包含:尝试包含以下panel页面的源码,代码审计一下:

//这里执行的contine命令,不是上传,可以省略。
if(isset($_POST['continue']))
{
	$dir=getcwd();
	//客户端提交的load参数中的./会被替换为空在赋值给choice
	$choice=str_replace('./','',$_POST['load']);
	if($choice==='add')
	{
       		include($dir.'/'.$choice.'.php');
			die();
	}
        if($choice==='show')
	{   
		include($dir.'/'.$choice.'.php');
		die();
	}
	else
	{
		include($dir.'/'.$_POST['load']);
	}	
}
//这里是上传的命令,目的是检查上传路径在哪
if(isset($_POST['upload']))
{
//mysqli_real_escape_string:作用转义sql语句中使用的特殊字符(过滤)
	$name=mysqli_real_escape_string($conn,$_POST['name']);
	$address=mysqli_real_escape_string($conn,$_POST['address']);
	$id=mysqli_real_escape_string($conn,$_POST['id']);	
	if(!empty($_FILES['image']['name']))
	{
		$iname=mysqli_real_escape_string($conn,$_FILES['image']['name']);
	$r=pathinfo($_FILES['image']['name'],PATHINFO_EXTENSION);
	//图片后缀白名单
	$image=array('jpeg','jpg','gif','png');
	if(in_array($r,$image))
	{
		$finfo = @new finfo(FILEINFO_MIME); 
	$filetype = @$finfo->file($_FILES['image']['tmp_name']);
	
		if(preg_match('/image\/jpeg/',$filetype )  || preg_match('/image\/png/',$filetype ) || preg_match('/image\/gif/',$filetype ))
				{
				//找到这里将文件移动到uploaded_images/.点的作用是拼接字符串
					if (move_uploaded_file($_FILES['image']['tmp_name'], 'uploaded_images/'.$_FILES['image']['name']))
							 {
							  echo "Uploaded successfully ";
							  $update='insert into users(name,address,image,id) values(\''.$name.'\',\''.$address.'\',\''.$iname.'\', \''.$id.'\')'; 
							 mysqli_query($conn, $update)
							}
				}
			else
			{
				echo "<br>i told you dear, only png,jpg and gif file are allowed";
			}
	}
	else
	{
		echo "<br>only png,jpg and gif file are allowed";	
	}
}
}

内核漏洞提权

0x02 总结

主要利用这个靶场对文件包含以及任意文件下载进行巩固

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值