• Web渗透——识别web应用框架


    一、概述

    Web框架指纹识别是信息收集过程中的一个重要任务。获悉目标框架的类型必然为测试人员带来极大的优势,如果该框架在之前就被测试过。测试人员不仅可以获得未修补版本中存在的漏洞,还可以了解此框架中特有的错误配置以及已知的文件结构。从而使指纹识别过程显得格外重要。

    二、测试方法

    黑盒测试

    可以查找几个最常见的位置来确定当前框架:

    1、HTTP 头
    2、cookies
    3、HTML源代码
    4、特殊文件和文件夹

    1、HTTP 头

    最基本识别web框架的方式是查看HTTP响应报头中的X-Powered-By字段。许多工具可以用来识别目标的指纹,最简单一个是netcat。
    如:
    X-Powered-By: Mono    //web应用框架是Mono

    2、cookies

    更可靠的方法是查看HTTP请求包(注意是请求包)特有的Cookies,如:
    Cookie: CAKEPHP=sidfiwhefjdcsfowjoef;    //web应用框架是CakePHP
    常见cookies中可识别框架:
    框架 cookie名
    Zope zope3
    CakePHP cakephp
    Kohana kohanasession
    Laravel laravel_session
     

    3、HTML 源代码

    查看HTML注释、某框架特有的路径、特有的脚本变量等信息。
    这些信息大多放在<head> </head>标记之间,<Meta>标记内部、或者页面尾部。
    HTML源码中可识别框架:
    常见的特征
    %framework_name%
    powered by
    built upon
    running

    特有的特征

    框架 关键字
    Adoble ColdFusion <!-- START headerTags.cfm
    Microsoft ASP.NET __VIEWSTATE
    ZK <!-- ZK
    Business Catalyst <!-- BC_OBNW -->
    Indexhibit ndxz-studio

    4、特有文件和目录

    每个不同的框架都有特有的文件和目录。在渗透测试过程中,建议测试人员自己搭建相应框架以便更好的理解框架的基础结构,并确定服务器上的遗留文件。

    三、加固措施

    建议使用多种工具测试并查看日志,从而知道哪些工具可以使得攻击者识别出Web框架。
    HTTP头: 检查配置、禁用或混淆所有可能泄露所用技术的HTTP头。
    Cookies: 建议通过修改相应的配置文件来改变Cookie名称。
    HTML源代码: 删除暴漏框架信息的可视标记、移除不需要的注释、移除Meta和作者标签、css和js脚本文件不存储在与框架有关的文件夹内、页面上禁止使用默认脚本。
    特有的文件和目录: 删除服务器上所有不必要和不使用的文件、使用404错误响应来限制从外部访问其他文件。
  • 相关阅读:
    Java 中常用缓存Cache机制的实现
    Spring普通类获取bean
    系统升级shell
    shell 操作文本内容(修改增加)
    接口实践;接口与抽象类
    Java中@Override的作用
    类实现多个接口的例子
    java 反射实践
    对象主要属性及识别
    java抽象类实践
  • 原文地址:https://www.cnblogs.com/charon1937/p/13741964.html
Copyright © 2020-2023  润新知