靶机渗透日记 Billu_b0x

本文详述了通过目录扫描和文件上传漏洞,利用PHP代码获取数据库账号密码,尝试登录phpmyadmin并利用PHP信息泄露获取网站根目录。接着,通过上传图片马配合文件包含攻破防御,最终利用蚁剑获取WebShell并上线到MSF,进一步通过系统版本探测寻找EXP提升为root权限的过程。
摘要由CSDN通过智能技术生成
  1. 端口

    image-20220303141506523

  2. 访问 80 端口

    在这里插入图片描述

  3. 目录扫描

    在这里插入图片描述

  4. /add.php 文件下存在文件上传

    在这里插入图片描述

    没有上传成功

    /test.php

    在这里插入图片描述

    缺少 file 参数,构造URL

    http://ip/test.php?file=/etc/passwd
    

    尝试不行,使用 post 方式

    在这里插入图片描述

  5. 依次读取目录扫描到的文件

    //add.php
    <?php
    
    echo '<form  method="post" enctype="multipart/form-data">
        Select image to upload:
        <input type="file" name=image>
    	<input type=text name=name value="name">
    	<input type=text name=address value="address">
    	<input type=text name=id value=1337 >
        <input type="submit" value="upload" name="upload">
    </form>';
    
    ?>
    
    //index.php
    <?php
    session_start();
    
    include('c.php');
    include('head.php');
    if(@$_SESSION['logged']!=true)
    {
    	$_SESSION['logged']='';
    	
    }
    
    if($_SESSION['logged']==true &&  $_SESSION['admin']!='')
    {
    	
    	echo "you are logged in :)";
    	header('Location: panel.php', true, 302);
    }
    else
    {
    echo '<div align=center style="margin:30px 0px 0px 0px;">
    <font size=8 face="comic sans ms">--==[[ billu b0x ]]==--</font> 
    <br><br>
    Show me your SQLI skills <br>
    <form method=post>
    Username :- <Input type=text name=un> &nbsp Password:- <input type=password name=ps> <br><br>
    <input type=submit name=login value="let\'s login">';
    }
    if(isset($_POST['login']))
    {
    	$uname=str_replace('\'','',urldecode($_POST['un']));
    	$pass=str_replace('\'','',urldecode($_POST['ps']));
    	$run='select * from auth where  pass=\''.$pass.'\' and uname=\''.$uname.'\'';
    	$result = mysqli_query($conn, $run);
    if (mysqli_num_rows($result) > 0) {
    
    $row = mysqli_fetch_assoc($result);
    	   echo "You are allowed<br>";
    	   $_SESSION['logged']=true;
    	   $_SESSION['admin']=$row['username'];
    	   
    	 header('Location: panel.php', true, 302);
       
    }
    else
    {
    	echo "<script>alert('Try again');</script>";==
    }
    	
    }
    echo "<font size=5 face=\"comic sans ms\" style=\"left: 0;bottom: 0; position: absolute;margin: 0px 0px 5px;\">B0X Powered By <font color=#ff9933>Pirates</font> ";
    
    ?>
    
    //c.php
    <?php
    #header( 'Z-Powered-By:its chutiyapa xD' );
    header('X-Frame-Options: SAMEORIGIN');
    header( 'Server:testing only' );
    header( 'X-Powered-By:testing only' );
    
    ini_set( 'session.cookie_httponly', 1 );
    
    $conn = mysqli_connect("127.0.0.1","billu","b0x_billu","ica_lab");
    
    // Check connection
    if (mysqli_connect_errno())
      {
      echo "connection failed ->  " . mysqli_connect_error();
      }
    
    ?>
    

    得到数据库的账号密码

  6. 利用得到的账号密码登录 phpmyadmin,查看 phpinfo 得到网站的根路径

    在这里插入图片描述

    利用 phpmyadmin 写入一句话,显示权限过低

    在这里插入图片描述

    在这里插入图片描述

    在 auth 表中得到一组账号密码

    在这里插入图片描述

    用此账号密码成功登录 index.php

  7. 发现在 add user 中有上传功能

    在这里插入图片描述

    直接上传 .php 文件,提示 only png,jpg and gif file are allowed

    绕过失败,这里上传一个图片马,配合文件包含拿shell,上传图片没有返回上传路径,继续代码审计,查看 panel.php

    <?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";
    		
    	}
    }
    
    }
    
    ?>
    

    可以发现上传到了 uploaded_images/ 下,利用蚁剑连接成功GETSHELL

    在这里插入图片描述

  8. 上线到 MSF ,查看当前系统版本

    cat /etc/issue
    

    Ubuntu 12.04.5 LTS,搜索 EXP

    在这里插入图片描述

    编译执行后得到 root 权限

    在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值