0x02 OTG-CONFIG 配置以及部署管理测试

网络基础设施配置管理测试(OTG-CONFIG-001)

  1. 综述
  • 在测试配置管理设置中可能用到的步骤
    应确定组成基础设施的不同元素,及这些元素与Web应用如何交互,对安全会造成什么影响
    审查所有组成基础设施的元素,确保未包含任何已知漏洞br> 审查不同的维护应用管理员工具
    审查认证系统能否满足应用的需求,并不会被外部用户恶意操作获得权限
    预先定义应用程序使用的端口,纳入维护和变更措施中
  1. 如何测试
  • 已知服务器漏洞
  • 管理工具:
    确定访问接口的控制机制
    改变默认用户名和密码

应用平台配置管理测试(OTG-CONFIG-002)

  1. 综述
    创建和维护架构中审查和测试配置是一项关键的任务
    Web应用和服务器安装过程中的应用例子、文档、测试页面应在部署前移除
  2. 如何测试
  • 黑盒:
    样本(已知漏洞)和已知文件/目录
    注释检查
  • 灰盒:
    • 配置审查
      只启用所需的模块
      使用自定义页面替代默认的40x或50x页面
      服务器软件最小权限启动(新建一个专用用户)
      日志中记录合法和错误访问
      确保服务器进行了性能测试
      非管理主体禁止访问配置文件
      不要共享配置文件
      修改配置文件读取权限
      加密敏感信息
    • 日志记录
      日志是否包含敏感信息
      日志是否存储在专属服务器
      日志使用是否可能产生DoS
      如何迭代,是否长时间保存
      日志如何被审查,管理员是否能审查处攻击行为
      日志备份如何被保存
      日志记录数据前是否验证(最小最大长度、字符等)
    • 日志中的敏感信息
      对攻击者有用的数据(信息泄露)或能被直接利用:
      调试信息
      堆栈追踪数据
      用户名
      系统组件名称
      内部IP地址
      敏感信息(电子邮件地址、邮编地址、电话号码)
      业务数据
    • 广范围的敏感信息列表:
      应用程序源码
      会话ID
      访问令牌
      敏感个人数据和一些个人识别信息(PII)
      认证密码
      数据库连接字符串
      加密密钥
      银行账户或支付卡信息
      高于日志系统能记录的高级别数据
      商业敏感信息
      在相关法律内属于非法收集的资料
      在用户不同意收集的信息,如不追踪(DNT)或同意收集的时限已过期
    • 日志位置
    • 日志存储
    • 日志轮转迭代
      日志保存的时间
      轮转后应被压缩
      修改轮转后的日志权限
    • 日志访问控制
    • 日志审查
      特别关注40x,50x

文件拓展名处理测试(OTG-CONFIG-003)

  1. 综述
    文件拓展名通常能够简单确定Web服务器用来的技术、语言和插件
  2. 如何测试
  • 强制浏览
    漏洞扫描器
    蜘蛛机器人
    网站镜像工具
    人工检查应用
    查询搜索引擎
  • 文件上传
    绕过
  • 灰盒
    检查如何处理不同的文件拓展名
  1. 测试工具
  • wget
  • curl
  • google “web mirroring tools”

审查旧文件、备份文件和未引用的文件中的敏感信息(OTG-CONFIG-004)

  1. 威胁
    暴露敏感信息:数据库凭证、配置文件、绝对路径等
    可攻击应用程序的函数,管理页面
    近期已修复漏洞
    备份文件暴露页面源代码
    压缩的备份文件包含Web目录下所有文件
    日志文件包含敏感信息:URL传递敏感数据,会话ID,已访问URL
    文件系统快照
  2. 如何测试
    黑盒:
  • 从发布的公开内容推断文件命名模式
  • 已发布的内容的其他线索
    JS文件或HTML源码可能存在其他隐藏功能或页面
    robots.txt可能包含未引用目录
  • 盲目猜测(爆破)
  • 从服务器漏洞和错误配置中获取信息
  • 利用公开信息
    搜索引擎缓存
    未被引用的第三方链接
  • 文件名过滤绕过
    • 如:Windows 8.3文件名扩展
      规则:
      移除不兼容字符
      将空格转换成下划线
      取文件名前六个字符
      加入”<数字>”来区分6个初始字符串相同的文件
      截取文件扩展名前三位
      将所有字符大写
  1. 测试工具
  • Nessus
  • wikto
  • wget
  • spike proxy
  • xenu
  1. 整改措施
  • 避免直接在生产系统上修改文件(编辑器会生成备份文件)
  • 留意文件操纵活动(如文件归档)
  • 优化配置文件策略
  • Web应用程序不依赖于Web根目录下的文件(数据文件、日志文件、配置文件),即留意Web目录的权限
  • 避免文件系统快照被Web访问

枚举基础设施和应用程序管理接口测试(OTG-CONFIG-005)

  1. 综述
    测试管理接口是否可以或如何被非授权用户和普通用户使用
    管理员行为:
    用户账号操作
    网站设计和布局操作
    数据操作
    配置修改
  2. 如何测试
    黑盒:
  • 用于测试管理接口的向量:
    目录和文件枚举
    暴力浏览服务器内容
    识别管理页面文件名
    源码注释和链接
    参考服务器和应用软件文档
    公开可用的信息
    可选服务端口
    参数伪造
    灰盒:
    服务器和应用组件检查
    源代码审查
  1. 测试工具
  • dirbuster
  • THC-HYDRA
  • 暴破,netsparker字典

测试HTTP方法(OTG-CONFIG-006)

  1. 综述
  • RFC 2616 HTTP1.1定义的8个方法:
    HEAD
    GET
    POST
    PUT
    DELETE
    TRACE
    OPTIONS
    CONNECT
  • 应禁用的方法:
    PUT:允许客户端向Web服务器上传新的文件
    DELETE:允许客户端删除Web服务器上的一个文件
    CONNECT:允许客户端使用Web服务器作为代理
    TRACE:简单返回客户端发送给服务器的所有信息,用于调试,可被用于XST
  • 如需要使用,如REST Web服务(可能需要PUT或DELETE),应检查使用的条件和用户
  1. 如何测试
  • 发现支持的方法
    nc OPTIONS
  • 测试潜在的XST
    TRACE方法能够绕过HTTPOnly获取Cookies:
    如果浏览器向Web服务器发起TRACE请求,且浏览器保存了该域名的cookie,则cookie会自动包含在请求头里,cookie会在响应结果中回显,此时cookie能被JS访问并可能发送给第三方(即使cookie被标记HTTPOnly)
    实施XST攻击的方法:
    利用其它服务器端漏洞,攻击者向漏洞应用注入包含TRACE请求的恶意JS代码,类似正常的XSS
    利用客户端漏洞,攻击者创建一个恶意站点包含恶意JS代码和浏览器的跨域漏洞利用程序,使JS能够发起支持TRACE方法和目标cookie的请求
    参考Jeremah Grossman的白皮书
  • 测试任意HTTP方法
  • 测试绕过HEAD访问控制
  1. 测试工具
  • netcat
  • curl

HTTP严格传输安全测试(OTG-CONFIG-007)

  1. 综述
  • HSTS头限定网站和浏览器间通信必须使用HTTPS
  • HSTS头使用的两个指令:
    max-age:浏览器应自动转换所有HTTP请求为HTTPS的时间(秒)
    includeSubDomains:指明所有Web应用的子域名也必须使用HTTPS
  • 应用使用HSTS头后,应检查可能产生的几个问题
    攻击者可能嗅探网络获取未加密信道的信息
    MiMT
    HTTP替换HTTPS
  1. 如何测试
    curl -s -D- https//domain.com/ | grep Strict

应用程序跨域策略测试(OTG-CONFIG-008)

  1. 综述
    富因特网应用程序(RIA)应遵循Adobe的crossdomain.xml策略来控制跨域数据访问和使用服务
    不恰当的策略配置可能导致CRSF
  • 跨域策略文件
    策略文件的权限控制:
    可接受的策略文件(主策略文件可禁止或限制特定策略文件)
    Sockets权限
    HTTP权限
    HTTP/HTTPS访问权限
    基于密码访问
  • 滥用策略文件行为
    过度的跨域权限策略
    产生的服务器应答可能被当做跨域策略文件
    上传的文件可能被当做跨域策略文件
  • 滥用产生的影响
    破坏CSRF防护措施
    读取限制的或被跨源策略(cross-origin)保护的数据
  1. 如何测试
  • 测试应用策略文件弱点
    • 从根目录获取crossdomain.xml或clientaccesspolicy.xml策略文件
    • 检查每个权限是否遵循最低权限原则
      从域名、端口或协议限制请求
      过度的权限策略
      特别注意*的策略
  1. 测试工具
  • Nikto
  • Zed Attack proxy
  • w3af

Leave a Reply

Your email address will not be published. Required fields are marked *