[内网渗透]XXE-vulnhub

[内网渗透]XXE-vulnhub

环境安装

首先在 vulnhub 下载文件:

image-20230720182844953

将其解压为ovf格式:

image-20230720182923549

使用vmware打开,新建一个虚拟机,然后开机,环境就搭好了

image-20230720183041507

信息收集

由于我们打开了虚拟机,所以我们首先需要知道其ip

首先使用ifconfig命令查看本机的ip所处的网段:

image-20230720183256276

查询到本机ip:192.168.56.128 ,为C段网络,前24位为网络号

知道了网络号之后,我们可以使用nmap工具扫描查询目标靶机ip开放情况

nmap -sP 192.168.56.1/24
# -sP 使用Ping扫描,效率高,返回信息少
image-20230720183654341

主机192.168.56.134存活

接下来我们需要查看ip192.168.56.134的端口开放情况:

nmap -p 1-65535 192.168.56.134
# -p 指定扫描端口范围

image-20230720183910166

端口805355开放,于是我们访问一下:

image-20230720184036976

好像没什么东西,接下来的思路是使用目录扫描,扫描出来有哪些目录

这里可以使用dirb命令

dirb是一个常用的命令行工具,用于在Web服务器上执行目录和文件扫描。它主要用于发现隐藏的目录、文件和其他资源

dirb http://192.168.56.134
image-20230720184321855

扫描出一个robots.txt,访问:

image-20230720184419636

访问/xxe/

image-20230720184444490

是一个登录界面,我们再访问一下:/xxe/admin.php

image-20230720184632740

是管理员的登录界面,我们不能简单的爆破,没效果这里

解题步骤

我们结合题目为XXE,猜测是xxe漏洞,所以在/xxe/xxe.php表单提交时抓包:

image-20230720184819784

确实为XML的格式,于是构造简单XXE读取文件的格式,读取/etc/passwd

image-20230720184912136

成功读取,存在XXE漏洞,于是我们读取一下:admin.php

image-20230720185044137

base64解码:

<?php
   session_start();
?>


<html lang = "en">
   
   <head>
      <title>admin</title>
      <link href = "css/bootstrap.min.css" rel = "stylesheet">
      
      <style>
         body {
            padding-top: 40px;
            padding-bottom: 40px;
            background-color: #ADABAB;
         }
         
         .form-signin {
            max-width: 330px;
            padding: 15px;
            margin: 0 auto;
            color: #017572;
         }
         
         .form-signin .form-signin-heading,
         .form-signin .checkbox {
            margin-bottom: 10px;
         }
         
         .form-signin .checkbox {
            font-weight: normal;
         }
         
         .form-signin .form-control {
            position: relative;
            height: auto;
            -webkit-box-sizing: border-box;
            -moz-box-sizing: border-box;
            box-sizing: border-box;
            padding: 10px;
            font-size: 16px;
         }
         
         .form-signin .form-control:focus {
            z-index: 2;
         }
         
         .form-signin input[type="email"] {
            margin-bottom: -1px;
            border-bottom-right-radius: 0;
            border-bottom-left-radius: 0;
            border-color:#017572;
         }
         
         .form-signin input[type="password"] {
            margin-bottom: 10px;
            border-top-left-radius: 0;
            border-top-right-radius: 0;
            border-color:#017572;
         }
         
         h2{
            text-align: center;
            color: #017572;
         }
      </style>
      
   </head>
	
   <body>
      
      <h2>Enter Username and Password</h2> 
      <div class = "container form-signin">
         
         <?php
            $msg = '';
            if (isset($_POST['login']) && !empty($_POST['username']) 
               && !empty($_POST['password'])) {
				
               if ($_POST['username'] == 'administhebest' && 
                  md5($_POST['password']) == 'e6e061838856bf47e1de730719fb2609') {
                  $_SESSION['valid'] = true;
                  $_SESSION['timeout'] = time();
                  $_SESSION['username'] = 'administhebest';
                  
                echo "You have entered valid use name and password <br />";
		$flag = "Here is the <a style='color:FF0000;' href='/flagmeout.php'>Flag</a>";
		echo $flag;
               }else {
                  $msg = 'Maybe Later';
               }
            }
         ?>
      </div> <!-- W00t/W00t -->
      
      <div class = "container">
      
         <form class = "form-signin" role = "form" 
            action = "<?php echo htmlspecialchars($_SERVER['PHP_SELF']); 
            ?>" method = "post">
            <h4 class = "form-signin-heading"><?php echo $msg; ?></h4>
            <input type = "text" class = "form-control" 
               name = "username" 
               required autofocus></br>
            <input type = "password" class = "form-control"
               name = "password" required>
            <button class = "btn btn-lg btn-primary btn-block" type = "submit" 
               name = "login">Login</button>
         </form>
			
         Click here to clean <a href = "adminlog.php" tite = "Logout">Session.
         
      </div> 
      
   </body>
</html>

可以看到:username=administhebest & 密码的md5为:e6e061838856bf47e1de730719fb2609

密码md5解密一下:admin@123

登录admin.php

image-20230720185428954

点击flag

image-20230720185345536

啥也没有,再用xxe读取一下flagmeout.php

image-20230720185757319

base64解密:

<?php
$flag = "<!-- the flag in (JQZFMMCZPE4HKWTNPBUFU6JVO5QUQQJ5) -->";
echo $flag;
?>
image-20230720185929954

查看/etc/.flag.php的内容:

image-20230720190007556

解密:

image-20230720190031117

看着像php自增的代码,我们使用在线网站运行一下得到flag

image-20230720190117164

总结

其实这个xxe的靶场也不难,就一下常规步骤,之前没有写wp,以后要多总结,多写wp才能更好的复习

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值